Sélectionner et copier le contenu des feuilles d'un worksheet
Fermé
Julien
-
12 oct. 2012 à 17:32
Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 - 14 oct. 2012 à 17:55
Le Pingou Messages postés 12041 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 22 avril 2024 - 14 oct. 2012 à 17:55
A voir également:
- Sélectionner et copier le contenu des feuilles d'un worksheet
- Copier une vidéo youtube - Guide
- Word a trouvé du contenu illisible - Guide
- Super copier - Télécharger - Gestion de fichiers
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
- Copier un disque dur - Guide
4 réponses
Le Pingou
Messages postés
12041
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 avril 2024
1 426
13 oct. 2012 à 10:58
13 oct. 2012 à 10:58
Bonjour,
Qu'avez-vous déjà essayé de réaliser ?
Qu'avez-vous déjà essayé de réaliser ?
Bonjour et merci de vos réponses rapides.
Voici le code que j'ai réalisé jusqu'à présent (soyez indulgents, je début en vba ;) ):
Sub fusion2()
N = Sheets.Count
For i = 1 To N - 1 Step 1
b = 0
While b = 0
For j = 1 To 250 Step 1
If Sheets(i).Cells(1).Offset(j, 0).Value = "2011" Then b = 1 & ref = j
Next j
Wend
If b = 1 Then Sheets(i).Range("A1:G500").Offset(ref, 0).Copy
Paste Destination:=Worksheets("Total").Cells((i - 1) * 8 + 1)
Next i
End Sub
De manière à sélectionner les données des paiemenst de chaque feuille, à partir de 2011, et les coller dans une feuille "Total", les uns à cotés des autres.
A cela, il faudrait que je rajoute une condition, qui ne sélectionne les paiements et ne les copie que si la valeur du paiement en 2011 est différente de zéro.
Autre souci: lorsque le run le Sub, vba se plante systématiquement, y a t'il un problème dans ce que j'ai codé?
D'avance un grand merci,
Julien
Voici le code que j'ai réalisé jusqu'à présent (soyez indulgents, je début en vba ;) ):
Sub fusion2()
N = Sheets.Count
For i = 1 To N - 1 Step 1
b = 0
While b = 0
For j = 1 To 250 Step 1
If Sheets(i).Cells(1).Offset(j, 0).Value = "2011" Then b = 1 & ref = j
Next j
Wend
If b = 1 Then Sheets(i).Range("A1:G500").Offset(ref, 0).Copy
Paste Destination:=Worksheets("Total").Cells((i - 1) * 8 + 1)
Next i
End Sub
De manière à sélectionner les données des paiemenst de chaque feuille, à partir de 2011, et les coller dans une feuille "Total", les uns à cotés des autres.
A cela, il faudrait que je rajoute une condition, qui ne sélectionne les paiements et ne les copie que si la valeur du paiement en 2011 est différente de zéro.
Autre souci: lorsque le run le Sub, vba se plante systématiquement, y a t'il un problème dans ce que j'ai codé?
D'avance un grand merci,
Julien
Le Pingou
Messages postés
12041
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 avril 2024
1 426
13 oct. 2012 à 23:37
13 oct. 2012 à 23:37
Bonjour,
Merci pour l'information,
Je regarderai demain pour une solution.
Merci pour l'information,
Je regarderai demain pour une solution.
Le Pingou
Messages postés
12041
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
22 avril 2024
1 426
14 oct. 2012 à 17:55
14 oct. 2012 à 17:55
Bonjour,
En attendant votre réponse voici une proposition pour date supérieur 31.12.2009 et paiement différent de zéro.
En attendant votre réponse voici une proposition pour date supérieur 31.12.2009 et paiement différent de zéro.
Sub recap() datech = "31.12.2010" shtot = "Total" ct = Cells(Rows.Count, 1).End(xlUp).Row + 1 ' boucle sur les feuilles du classeur For Each sh In Worksheets ' pas la feuille "Total" If sh.Name <> shtot Then MsgBox "La Feuille : " & sh.Name ' boucle sur les données et filtre sur date et montant 0 For c = 2 To sh.Cells(Rows.Count, 1).End(xlUp).Row If sh.Cells(c, 1) > CDate(datech) And sh.Cells(c, 1) <> 0 Then MsgBox " Données à copier ligne : " & c ' ligne d'instruction pour insérer dans feuille "Total" ' A adapter selon désir Cells(ct, 1) = sh.Cells(c, 1) Cells(ct, 2) = sh.Cells(c, 2) ct = ct + 1 End If Next c End If Next sh End Sub
13 oct. 2012 à 11:52
Et au-delà de 2010 ou à partir de 2010 ?
Ce n'est pas pareil...
eric