VBA : Copie ligne pour controle report totaux

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bertrand1202

XLDnaute Occasionnel
Bonjour


Je souhaite établir une récapitualtion ( déjà fait) et par la suite pouvoir contrôler que les totaux de la recap soient égaux aux totaux de chaque feuille.J'ai fait un fichier réduit et je bloque sur copy destination .

je dis à la macro d'aller sur page recap 2 ligne en dessous de total et ensuite de coller chaque total de chaque feuille en dessous.

Merci de votre aide
 

Pièces jointes

Dernière édition:
Re : VBA : Copie ligne pour controle report totaux

Re

non "dim" permet de déclarer une variable, pour l'initialiser :

Code:
Set ws = ActiveSheet

tu peux également l'utiliser via une boucle "for each"

Code:
For Each ws In ActiveWorkbook.Worksheets

dans ce cas ta variable "ws" sera initialiser lors de la boucle par tous les membres de la collection "worksheets"...

@+
 
Re : VBA : Copie ligne pour controle report totaux

Re


Merci beaucoup Pierrot, la difficulté tient au fait que je ne peux déclarer qu'une seule fois for each, donc si je l'utilise pour ws , je ne pourrai plus l'utiliser pour vcellule , dans ce cas comment combiner les deux?

Merci e ton aide. j'essaye d'aancer sur Vbamais je n'ai pas intégré toute la logique malgré les recherches sur le forum
Merci encore.
 
Re : VBA : Copie ligne pour controle report totaux

Re

Dans ce cas, faire 2 boucles imbriquées, comme ceci :

Code:
Dim ws As Worksheet, vcellule As Range
For Each ws In ActiveWorkbook.Worksheets
    For Each vcellule In ws.Range("a6:a" & ws.Range("a65536").End(xlUp).Row)
        If ws.Name = "Recap" And vcellule.Value = "total" Then
            'ton action
        End If
    Next vcellule
Next ws

Boucles sur toutes les feuilles, et pour chaque feuilles boucle sur chaque cellules de la colonne A

@+
 
Re : VBA : Copie ligne pour controle report totaux

Re


Merci Pierrot, je vais appliquer cette méthode et essayer de comprendre pourquoi je me plante quand je fais deux for each, merci beacoup.

j'espère enfin résoudre mon problème , je reviendrai au cas où , donc si je ne m'en sors pas, je dois y arriver avec du temps.

Bonne journée,
merci à toi
 
Re : VBA : Copie ligne pour controle report totaux

Re

A noter que si tu ne veux agir que sur la feuille "recap", il est préférable de tester son nom avant de partir dans la seconde boucle :

Code:
Dim ws As Worksheet, vcellule As Range
For Each ws In ActiveWorkbook.Worksheets
    If ws.Name = "Recap" Then
        For Each vcellule In ws.Range("a6:a" & ws.Range("a65536").End(xlUp).Row)
            If vcellule.Value = "total" Then
                'ton action
            End If
        Next vcellule
    End If
Next ws

@+
 
Re : VBA : Copie ligne pour controle report totaux

Bonjour

quelqu'un pourrait il me dire ce qui ne va pas , la macro tourne mais ne reporte pas sur la page recap feuille par feuille les lignes "total" de chaqe WS
de manière à ce que je comprenne et puisse l'adapter à d'autres exemples.

Merci d'avance
Le code :
Sub controlereport()
Dim ws As Worksheet, vcellule As Range
Dim vLigne As Integer
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "Recap" Then
For Each vcellule In ws.Range("a6:a" & ws.Range("a65536").End(xlUp).Row)
If vcellule.Value = "total" Then
vcellule.Offset(vLigne).EntireRow.Copy Sheets("Recap").vcellule.Offset(vLigne + 2).Value
End If
Next vcellule
End If
Next ws
vLigne = vLigne + 1

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
25
Affichages
2 K
Réponses
5
Affichages
672
Compte Supprimé 979
C
D
Réponses
4
Affichages
1 K
S
Réponses
6
Affichages
2 K
simsinaty
S
Retour