Macro Excel: gestion des feuilles ActiveSheet ...

Macro Excel: gestion des feuilles ActiveSheet ... - VB/VBA/VBS - Programmation

Marsh Posté le 25-07-2005 à 09:44:17    

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...

Reply

Marsh Posté le 25-07-2005 à 09:44:17   

Reply

Marsh Posté le 25-07-2005 à 14:41:43    

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)...
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed