VBA problème boucle (for...next)

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 !

nico91410

XLDnaute Nouveau
Salut,

J’aimerais bénéficier de votre aide sur la réalisation d’une macro, je bute sur une boucle.

J’explique un peu ma macro :
Pour chaque référence dans un fichier (PDP), elle recherche les références dont la colonne z (26) est égale à « Alerte ».
Ensuite, elle recherche si cette référence est présente dans un fichier (tableau de bord), si elle n’est pas présente, elle colle des données en fin de tableau.

Le problème c’est qu’elle colle autant de fois la référence qu’il y a de nombre de ligne dans le tableau de bord. J’aimerais qu’elle colle cette donnée une seule fois.

Le problème doit venir de la boucle J mais je ne vois pas comment je peux solutionner cela.

Merci d’avance 🙂

Sub MaJ_TDB()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim nblignes As Integer
Dim FichierPDP As String
Dim CheminPDP As String
Dim couplerecherché As String
Dim coupletrouvé As String
CheminPDP = Sheets("chemins").Cells(9, 3).Value
FichierPDP = Sheets("chemins").Cells(10, 3).Value

'Compter le nombre de lignes de la tableau de bord des arrêts de prod.
nblignes = Sheets("Tableau Suivi").Range("B5").End(xlDown).Row

StartAnalyse = 5
EndAnalyse = Workbooks("Tableau de bord arrêt de prod SC.xlsm").Sheets("Tableau Suivi").Range("C5").End(xlDown).Row

CheminPDP = Sheets("chemins").Cells(9, 3).Value
FichierPDP = Sheets("chemins").Cells(10, 3).Value

'Ouvrir le fichier PDP
Call Ouvrir(CheminPDP, FichierPDP)



For i = 2 To Workbooks("Fichier PDP Brut Light.xls").Sheets("PlanProduction").Range("a6").End(xlDown).Row

If Workbooks("Fichier PDP Brut Light.xls").Sheets("PlanProduction").Cells(i, 26).Value = "Alerte" Then
'recherche le couple référence/site dans le PDP.
couplerecherché = Workbooks("Fichier PDP Brut Light.xls").Sheets("PlanProduction").Cells(i, 2).Value & _
Workbooks("Fichier PDP Brut Light.xls").Sheets("PlanProduction").Cells(i, 5).Value

'recherche le couple référence/site dans le tableau de bord des arrêts de prod.
trouvé = 0
For j = StartAnalyse To EndAnalyse
coupletrouvé = Workbooks("Tableau de bord arrêt de prod SC.xlsm").Sheets("Tableau Suivi").Cells(j, 3).Value & _
Workbooks("Tableau de bord arrêt de prod SC.xlsm").Sheets("Tableau Suivi").Cells(j, 5).Value
If (couplerecherché) <> (coupletrouvé) Then

' Si le couple ref/site n'est pas trouvé recopier les valeurs
m = 0
m = m + 1
n = nblignes + m

'Coller les données
Workbooks("Tableau de bord arrêt de prod SC.xlsm").Sheets("Tableau Suivi").Cells(n, 4).Value = _
Workbooks("Fichier PDP Brut Light.xls").Sheets("PlanProduction").Cells(x, 26).Value

Workbooks("Tableau de bord arrêt de prod SC.xlsm").Sheets("Tableau Suivi").Cells(n, 3).Value = _
Workbooks("Fichier PDP Brut Light.xls").Sheets("PlanProduction").Cells(x, 2).Value

trouvé = 1

End If

Next

End If
Next

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
 
Re : VBA problème boucle (for...next)

bonjour
à tester:
à la place de
If (couplerecherché) <> (coupletrouvé) Then
mettre
if (couplerecherché) = (coupletrouvé) Then exit for
If j=Endanalyse and (couplerecherché) <> (coupletrouvé) Then
...la suite de ta macro

à+
 
Re : VBA problème boucle (for...next)

Super !!!!

Ça marche, l'objet qui comptait le nombre de ligne dans le tableau n'était pas placé dans la boucle.

Compter le nombre de lignes de la tableau de bord des arrêts de prod.
nblignes = Workbooks("Tableau de bord arrêt de prod SC.xlsm").Sheets("Tableau Suivi").Range("C5").End(xlDown).Row


Du coup, ça me remplaçait à chaque fois la dernière ligne.
 
- 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
5
Affichages
237
Retour