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
Bonjour,

J'ai une code à concevoir et j'ai un peu de mal à le mettre en place.

Je dispose d'un classeur comprenant plusieurs feuilles. Dans chaque feuille, un historique de paiements, dont certains vont au delà de 2010, d'autres pas (date dans la colonne A, paiements dans la colonne B).

Je voudrais coller les paiements de chaque feuille l'un à la suite de l'autre, dans une même feuille, mais seulement si ces paiments vont au délà de 2010 (donc si, à partir de 2010, la colonne B présente des valeurs différentes de 0), et ainsi me retrouver avec une feuille globale reprennant tous les paiements qui vont au délà de 2010.

D'avance merci de votre aide,

Julien



A voir également:

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
Bonjour,
Qu'avez-vous déjà essayé de réaliser ?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
13 oct. 2012 à 11:52
Bonjour,

Et au-delà de 2010 ou à partir de 2010 ?
Ce n'est pas pareil...
eric
0
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
0
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
Bonjour,
Merci pour l'information,
Je regarderai demain pour une solution.
0
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
Bonjour,
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

0