E
Eric
Guest
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, j'aimerais regrouper tous les fichiers d'un artist dans un répertoire 'Vrac' quand pour cet artiste, il y a moins de 5 titres dans ma liste.
Mon player offre la possiblité de copier la playlist dans le presse papier que je peux récupérer dans Excel.
J aimerais pouvoir faire des traitements sur les cellules avec une macro VBA.
Ma liste est composé de bcp de ligne, chq ligne correspondant à un fichier. Les colonnes sont utilisées comme suit:
A : tracknumber
B : artist -- c est celle ci qui m interesse ici, mais il sera question de copier la ligne complete
C : titre
D : année
... jusqu'à H qui contient le chemin complet d acces au fichier. Element tres important puisque c est avec la copie de cette colonne que je peux recréer une playlist m3u.
Voila pour l exposition de mon pb bien pratique
Débutant avec Excel, j ai aussi parfois du mal à me faire à la syntaxe VB (le C me semble plus familier!)... Question d'habitude.
Voici une ébauche de mon algo:
J'ai déjà un pb de conception Excel, avec une erreur sur de bloc With. With ActiveSheet ne me semble pas indispensable, mais sans ce bloc with, Excel me revoit qd meme l'erreur. J ai essayé avec un With tmpSheet puis Set tmpSheet = ActiveSheet, mais cela ne fonctionne pas non plus.
Pouvez vous me donner un coup de main? Merci.
J imagine que mon exercice doit paraitre trivial pour les habitués d Excel...
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, j'aimerais regrouper tous les fichiers d'un artist dans un répertoire 'Vrac' quand pour cet artiste, il y a moins de 5 titres dans ma liste.
Mon player offre la possiblité de copier la playlist dans le presse papier que je peux récupérer dans Excel.
J aimerais pouvoir faire des traitements sur les cellules avec une macro VBA.
Ma liste est composé de bcp de ligne, chq ligne correspondant à un fichier. Les colonnes sont utilisées comme suit:
A : tracknumber
B : artist -- c est celle ci qui m interesse ici, mais il sera question de copier la ligne complete
C : titre
D : année
... jusqu'à H qui contient le chemin complet d acces au fichier. Element tres important puisque c est avec la copie de cette colonne que je peux recréer une playlist m3u.
Voila pour l exposition de mon pb bien pratique
Débutant avec Excel, j ai aussi parfois du mal à me faire à la syntaxe VB (le C me semble plus familier!)... Question d'habitude.
Voici une ébauche de mon algo:
Code:
'Algo: Pour un artist B, si nombre(TitleC) < 5, alors artist dans vrac ; sinon dans artist
Private Sub TitlePerArtistAlgo()
'Dim TabTemp As Variant
'Dim RangeA As Range, RangeV As Range
'Dim MemF As Worksheet
Dim i1 As Integer, i2 As Integer
Dim L As Long
Dim C As Byte
i1 = i2 = 1
'With ActiveSheet
'Dernière ligne utilisée
L = ActiveSheet.Range('A1').SpecialCells(xlLastCell).Row
'Dernière colonne utilisée
C = ActiveSheet.Range('A1').SpecialCells(xlLastCell).Column
Do
'Tant que l'artiste reste le meme, regarder la ligne suivante
'On ne regarde que la 2ème colonne, celle des artistes
Do
i2 = i2 + 1
Loop Until ActiveSheet.Cell(i2, 2) <> ActiveSheet.Cell(i1, 2)
If (i2 - i1) < 5 Then
'copie les lignes dans un tableau temporaire pour la feuille Vrac
'RangeV = RangeV & .Range(.Cells(i1, 1), .Cells(i2, C)).Value
Else
'copie les lignes dans un tableau temporaire pour la feuille Artist
'RangeA = RangeA & .Range(.Cells(i1, 1), .Cells(i2, C)).Value
End If
i1 = i2
Loop Until i1 = L - 1
'copie des tableaux temporaires vers les feuilles correspondantes
'With ActiveWorkbook
' MemF.Name = 'Vrac'
' RangeV.Copy Destination:=MemF.Range('A1')
' MemF.Name = 'Artist'
' RangeA.Copy Destination:=MemF.Range('A1')
'End With
'End With
J'ai déjà un pb de conception Excel, avec une erreur sur de bloc With. With ActiveSheet ne me semble pas indispensable, mais sans ce bloc with, Excel me revoit qd meme l'erreur. J ai essayé avec un With tmpSheet puis Set tmpSheet = ActiveSheet, mais cela ne fonctionne pas non plus.
Pouvez vous me donner un coup de main? Merci.
J imagine que mon exercice doit paraitre trivial pour les habitués d Excel...