Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2883 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro Excel: gestion des feuilles ActiveSheet ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Macro Excel: gestion des feuilles ActiveSheet ...

n°1158707
Eric B
Posté le 25-07-2005 à 09:44:17  profilanswer
 

Bonjour,
 
Je range mes fichiers mp3 sur mon disque selon la structure "genre\artiste\fichier.mp3" (avec fichier de la forme "album - 01 - title" )
 
Seulement, afin d'éviter trop de répertoires avec seulement qques fichiers,  
quand pour un artiste A, il y a moins de 5 titres, j'aimerais regrouper tous les fichiers correspondants dans un répertoire "Vrac"
 
Vu que je ne vois pas comment faire cela avec mon player Foobar2000 (toute proposition est ici bienvenue), mon idée est de copier ma playlist dans Excel, et de faire des traitements sur les cellules avec une macro VBA
 
J'en suis à ce stade :

Code :
  1. 'Algo: Pour un artist B, si nombre(TitleC) < 5, alors artist dans vrac ; sinon dans artist
  2. Private Sub TitlePerArtistAlgo()
  3. 'Dim TabTemp As Variant
  4. 'Dim RangeA As Range, RangeV As Range
  5. 'Dim MemF As Worksheet
  6. Dim i1 As Integer, i2 As Integer
  7. Dim L As Long
  8. Dim C As Byte
  9. i1 = i2 = 1
  10. 'With ActiveSheet
  11. 'Dernière ligne utilisée
  12. L = ActiveSheet.Range("A1" ).SpecialCells(xlLastCell).Row
  13. 'Dernière colonne utilisée
  14. C = ActiveSheet.Range("A1" ).SpecialCells(xlLastCell).Column
  15. Do
  16.     'Tant que l'artiste reste le meme, regarder la ligne suivante
  17.     'On ne regarde que la 2ème colonne, celle des artistes
  18.     Do
  19.         i2 = i2 + 1
  20.     Loop Until ActiveSheet.Cell(i2, 2) <> ActiveSheet.Cell(i1, 2)
  21.     If (i2 - i1) < 5 Then
  22.        'copie les lignes dans un tableau temporaire pour la feuille Vrac
  23.        'RangeV = RangeV & .Range(.Cells(i1, 1), .Cells(i2, C)).Value
  24.     Else
  25.        'copie les lignes dans un tableau temporaire pour la feuille Artist
  26.        'RangeA = RangeA & .Range(.Cells(i1, 1), .Cells(i2, C)).Value
  27.     End If
  28.     i1 = i2
  29. Loop Until i1 = L - 1
  30. 'copie des tableaux temporaires vers les feuilles correspondantes
  31. 'With ActiveWorkbook
  32. '    MemF.Name = "Vrac"
  33. '    RangeV.Copy Destination:=MemF.Range("A1" )
  34. '    MemF.Name = "Artist"
  35. '    RangeA.Copy Destination:=MemF.Range("A1" )
  36. 'End With
  37. 'End With


 
J'ai déjà un pb de conception Excel, avec une erreur sur le bloc With. Il me manque un Set apparemment, mais je ne vois pas quoi mettre...

mood
Publicité
Posté le 25-07-2005 à 09:44:17  profilanswer
 

n°1159057
Gusdabo
Posté le 25-07-2005 à 14:41:43  profilanswer
 

oui, un genre de
 
set MemF = activesheet
 
si c'est sur la même feuille (j'ai pas regardé le détail de ton code)...
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro Excel: gestion des feuilles ActiveSheet ...

 

Sujets relatifs
Macro ExcelBesoin d'un expert en feuilles de styles CSS
Convertir du coréen en UTF-8 avec Excel / VB ?[MACRO ACESS] lancer un fichier Excel depuis Access
macro basique sous exceltransfere feuil excel
[VBA][résolu]comment interrompre ma macro pour modifier une feuille 
Plus de sujets relatifs à : Macro Excel: gestion des feuilles ActiveSheet ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR