Boucle sur VBA
Holtlion31
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
Frenchie83 Messages postés 2240 Date d'inscription Statut Membre Dernière intervention -
Frenchie83 Messages postés 2240 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débute en VBA alors je vais essayer d'être le plus précis et concis possible.
Voilà j'ai un automate qui calcule des puissances toutes les minutes tous les jours.
Dans ma colonne B figure la date et l'heure (02/09/2015 00:00).
J'ai fais 2 petites formules pour extraire le jour et le mois de cette colonne.
L'extraction va de A23 à O90356
Les jours vont de 1 à 31 et les mois de 9 à 11. (Attention, en novembre je n'ai que 3 jours).
Donc je filtre sur le jour 1 du mois 9, j'ai 1440 lignes (60min*24h par jours)
Ensuite, j'aimerai créer une boucle permettant de faire ce processus:
Je filtre sur jour 1 et mois 9 => Je sélectionne de A23:O1463 => Je copie => Je colle la sélection dans une nouvelle Feuille que je nomme (150901: AAMMJJ).
Je répète ce processus 63 fois (30 jours en Septembre, 31 en octobre et 3 en novembre)
Merci de votre aide
PS: Je ne peux vous donner mon extraction excel c'est professionnel
Je débute en VBA alors je vais essayer d'être le plus précis et concis possible.
Voilà j'ai un automate qui calcule des puissances toutes les minutes tous les jours.
Dans ma colonne B figure la date et l'heure (02/09/2015 00:00).
J'ai fais 2 petites formules pour extraire le jour et le mois de cette colonne.
L'extraction va de A23 à O90356
Les jours vont de 1 à 31 et les mois de 9 à 11. (Attention, en novembre je n'ai que 3 jours).
Donc je filtre sur le jour 1 du mois 9, j'ai 1440 lignes (60min*24h par jours)
Ensuite, j'aimerai créer une boucle permettant de faire ce processus:
Je filtre sur jour 1 et mois 9 => Je sélectionne de A23:O1463 => Je copie => Je colle la sélection dans une nouvelle Feuille que je nomme (150901: AAMMJJ).
Je répète ce processus 63 fois (30 jours en Septembre, 31 en octobre et 3 en novembre)
Merci de votre aide
PS: Je ne peux vous donner mon extraction excel c'est professionnel
2 réponses
Bonjour
Je ne peux vous donner mon extraction excel c'est professionnel rien ne vous empêche de mettre des données non confidentielles.
Cependant, vous pouvez toujours utiliser l'enregistreur de macros, faite au moins 2 à 3 cycles complets de vos manipulations et coller le résultat ici dans votre prochaine réponse. il ne restera qu'à faire une boucle pour que cela se reproduise 63 fois.
Cdlt
Je ne peux vous donner mon extraction excel c'est professionnel rien ne vous empêche de mettre des données non confidentielles.
Cependant, vous pouvez toujours utiliser l'enregistreur de macros, faite au moins 2 à 3 cycles complets de vos manipulations et coller le résultat ici dans votre prochaine réponse. il ne restera qu'à faire une boucle pour que cela se reproduise 63 fois.
Cdlt
RE
Voici, comme vous n'avez pas précisé, quels étaient les 3 jours de novembre, j'ai fait du 1 au 3, à vous de l'adapter si ce n'est pas ça.
Voici, comme vous n'avez pas précisé, quels étaient les 3 jours de novembre, j'ai fait du 1 au 3, à vous de l'adapter si ce n'est pas ça.
Sub RecopieZoneFiltée() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Set f1 = Sheets(ActiveSheet.Name) Annee = Year(Date) For m = 9 To 11 If m = 9 Then DerJour = 31 Mois = "09" ElseIf m = 10 Then DerJour = 30 Mois = 10 ElseIf m = 11 Then DerJour = 3 Mois = 11 End If For j = 1 To DerJour If j < 10 Then Jour = "0" & j Else Jour = j f1.Select ActiveSheet.AutoFilterMode = False ActiveSheet.Range("$P$22:$Q$91079").AutoFilter Field:=1, Criteria1:=j ActiveSheet.Range("$P$22:$Q$91079").AutoFilter Field:=2, Criteria1:=m NbCol = [B22].End(xlToRight).Column Range("_FilterDataBase").Offset(0, -14).Resize(, NbCol).SpecialCells(xlCellTypeVisible).Copy Sheets.Add After:=ActiveSheet ActiveSheet.Select ActiveSheet.Name = Right(Annee, 2) & Mois & Jour Range("A1").Select ActiveSheet.Paste Next j Next m Application.Calculation = xlCalculationAutomatic End SubCdlt
J'ai déjà utilisé l'enregistreur de Macro et en bidouillant un peu je vais arriver à ce que je veux.
Mais je ne sais pas comment créer une boucle.
Si vous pouvez m'aider sur celà
'
' Macro3 Macro
'
'
ActiveSheet.Range("$P$22:$Q$91079").AutoFilter Field:=1, Criteria1:="2"
ActiveSheet.Range("$P$22:$Q$91079").AutoFilter Field:=2, Criteria1:="9"
Range("B22").Select
Range(Selection, Selection.End(xlToRight)).Select
Range("B22:O22").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets.Add After:=ActiveSheet
Sheets("Feuil2").Select
Sheets("Feuil2").Name = "150902"
Range("A1").Select
ActiveSheet.Paste
End Sub
Le nom de la feuille serai mis à jour en fonction du jour et du mois sélectionné dans le filtre