Bonjour,
je viens vous trouver car j'ai besoin d'aide pour réaliser une macro qui est, pour moi, assez compliquée.
Voici ma situation:
Je dispose de trois feuilles: une qui regroupe tout les postes que je dois traiter (cpteposte); puis deux autres feuilles plus spécifiques (l'un pour le personnel (rapevenper personnel), l'autre pour le matériel (rapevenmat matériel)) que je dois intégrer à la première feuille.
Précédemment j'ai réussi à récupérer le numéro des postes dans la colonne A de chaque feuille pour pouvoir les comparer.
Pour mieux expliquer, je donne un exemple:
dans la feuille "rapevenper personnel", pour le poste "INSTALLATION PRINCIPALE (001)" (donc compte 001), il y a 58 lignes de données que je dois insérer dans la feuille "cpteposte" au poste "POSTE : 001 - INSTALLATION PRINCIPALE" (toujours compte 001).
Il y a une contrainte supplémentaire:
+ la colonne "Libellé" doit correspondre à la colonne "LIBELLE" sur la feuille cpteposte
+ la colonne "Qté Mat." doit correspondre à la colonne "Qté" sur la feuille cpteposte
+ la colonne "Tx.Loc.." doit correspondre à la colonne "P.U." sur la feuille cpteposte
+ la colonne "Montant" doit correspondre à la colonne "Montant H.T." sur la feuille cpteposte
J'ai pensé qu'il serait mieux de se placer dans la feuille "cpteposte" et de prendre les comptes, et un à un vérifier dans les deux fichiers si ils n'apparaissent pas. Si ils y sont, alors copier les données, et les coller au bon endroit dans la feuille cpteposte.
Voila ce que j'ai commencé à faire:
Comme ce n'est pas évidant à expliquer, je joins le fichier (dont les données sont modifiées).
Voila, la je suis arrivé à un point ou je bloque, c'est la raison pour laquelle je viens vous demander de l'aide: comment faire la suite?
De plus, j'ai l'impression qu'il y a un problème avec les boucles, car ça trouve le code "001" sur les trois feuilles, et puis plus rien....
Je vous remercie par avance pour votre aide.
Cordialement.
A bientôt
Edition: J'ai oublié de joindre le fichier
je viens vous trouver car j'ai besoin d'aide pour réaliser une macro qui est, pour moi, assez compliquée.
Voici ma situation:
Je dispose de trois feuilles: une qui regroupe tout les postes que je dois traiter (cpteposte); puis deux autres feuilles plus spécifiques (l'un pour le personnel (rapevenper personnel), l'autre pour le matériel (rapevenmat matériel)) que je dois intégrer à la première feuille.
Précédemment j'ai réussi à récupérer le numéro des postes dans la colonne A de chaque feuille pour pouvoir les comparer.
Pour mieux expliquer, je donne un exemple:
dans la feuille "rapevenper personnel", pour le poste "INSTALLATION PRINCIPALE (001)" (donc compte 001), il y a 58 lignes de données que je dois insérer dans la feuille "cpteposte" au poste "POSTE : 001 - INSTALLATION PRINCIPALE" (toujours compte 001).
Il y a une contrainte supplémentaire:
+ la colonne "Libellé" doit correspondre à la colonne "LIBELLE" sur la feuille cpteposte
+ la colonne "Qté Mat." doit correspondre à la colonne "Qté" sur la feuille cpteposte
+ la colonne "Tx.Loc.." doit correspondre à la colonne "P.U." sur la feuille cpteposte
+ la colonne "Montant" doit correspondre à la colonne "Montant H.T." sur la feuille cpteposte
J'ai pensé qu'il serait mieux de se placer dans la feuille "cpteposte" et de prendre les comptes, et un à un vérifier dans les deux fichiers si ils n'apparaissent pas. Si ils y sont, alors copier les données, et les coller au bon endroit dans la feuille cpteposte.
Voila ce que j'ai commencé à faire:
VB:
Sub complete()
With Sheets("cpteposte")
Sheets("cpteposte").Select
Dim l As Long, m As Long, n As Long, compte As String
l = 0
m = 0
n = 0
compte = ""
For l = 1 To .Range("A" & Rows.Count).End(xlUp).Row
If IsEmpty(.Range("A" & l)) = False Then
compte = Range("A" & l)
'si il trouve une valeur dans la colonne A, alors on l'enregistre dans "compte"
'et on va regarder dans les deux autres feuilles si elle y est aussi
For m = 3 To 4
With Sheets(m)
Sheets(m).Select
For n = 1 To .Range("A" & Rows.Count).End(xlUp).Row 'on parcourt la colonne A a la recherche de numeros de comptes
If IsEmpty(.Range("A" & n)) = False And .Range("A" & n) = compte Then 'si il trouve un numéro ET qu'il est égal à "compte"
' .ActiveCell.Offset(1, 1).Select '....
'sélectionne toutes les données de ce compte et va les insérer dans la feuille cpteposte
End If
Next n
End With
Next m
End If
Next l
End With
End Sub
Comme ce n'est pas évidant à expliquer, je joins le fichier (dont les données sont modifiées).
Voila, la je suis arrivé à un point ou je bloque, c'est la raison pour laquelle je viens vous demander de l'aide: comment faire la suite?
De plus, j'ai l'impression qu'il y a un problème avec les boucles, car ça trouve le code "001" sur les trois feuilles, et puis plus rien....
Je vous remercie par avance pour votre aide.
Cordialement.
A bientôt
Edition: J'ai oublié de joindre le fichier
Pièces jointes
Dernière édition: