macro générale pour différents classeurs

  • Initiateur de la discussion Initiateur de la discussion mentos64
  • Date de début Date de début

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 !

M

mentos64

Guest
Bonjour, 😕
Je dois réaliser une macro sous EXCEL qui permette de comparer 2 colonnes de 2 feuilles appartenant à des classeurs différents.
Le problème est que je dois dans un des classeur déterminer les feuilles qui m'intéressent (car toutes ne sont pas utiles). Donc je parcours les feuilles d'un classeur et dès que je trouve celle qui correspond alors je compare la colonne déterminée par "Designation" avec celle de l'autre feuille.
Le pb est que je ne sais pas parcourir des feuilles sur un classeur donc j'ai une erreur à ce niveau que je ne sais pas résoudre (c'est au-delà de mes compétences)...

Voici ma macro en VBA :

Sub Designation_Systeme_Manquant()

Dim Classeur1 As Workbook
Dim Classeur2 As Workbook

Set Classeur1 = Workbooks("leaks index.xls")
Set Classeur2 = Workbooks("Calcul_compare+_Girassol.xls")

Dim Feuille As Worksheet
Dim F1 As Worksheet
Dim F As Worksheet

Set F1 = Classeur1.Worksheets("all_type")

Dim lig As Integer
Dim col As Integer
Dim colonneDesign As Integer
Dim ligneDesign As Integer
Dim lig1 As Integer

For Each Feuille In Classeur2.Worksheets

'détection de la colonne contenant les intitulés des systèmes
For lig = 1 To 10
For col = 1 To 10

If Cells(lig, col).Value = "Designation" Then
colonneDesign = col
ligneDesign = lig + 2
End If

Next col
Next lig


' détection des systèmes manquant dans leaks index
While ligneDesign <= 200

For lig1 = 7 To 163

If Feuille.Cells(ligneDesign, colonneDesign).Value = F1.Cell(lig1, 2).Value Then -->l'erreur est à ce niveau
ligneDesign = ligneDesign + 1
End If

If lig1 = 163 Then
lig1 = lig1 + 1

While F1.Cells(lig1, 2).Value <> ""
lig1 = lig1 + 1
Wend

If F1.Cells(lig1, 2).Value = "" Then
F1.Cells(lig1, 2).Value = Feuille.Cells(ligneDesign, colonneDesign).Value
End If

End If

Next lig1

Wend

Next Feuille

End Sub


L'exécution me dit :
"erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet "


Merci 😉
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
730
Réponses
5
Affichages
907
Réponses
5
Affichages
573
Réponses
10
Affichages
661
Réponses
16
Affichages
2 K
Retour