• Initiateur de la discussion Initiateur de la discussion Fab117
  • 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 !

Fab117

XLDnaute Impliqué
Salut,
Ma macro est supposée extraire des informations d'une base de données.
A chaque fois quelle rencontre un N° donné dans la colonne K de l'onglet Table1, elle doit récupérer sur cette ligne plusieurs informations qu'elle doit ramener dans un autre onglet.
Le problème est que j'ai dans ma macro 2 boucles.
La première devant être réalisée jusqu'au bout, alors qur pour la 2ème, elle doit s'arréter dès que la condition est satisfaite. J'ai donc dans la 2ème mis un Exit For après la condition, mais apparement, il prend cet Exit For pour la première boucle.
Bref, voici le code et si quelqu'un pouvait m'indiquer l'erreur, ce serait sympa.
Merci.

Fab

Sub RappatriementInfoParNumeroProduit()

Dim NumeroProduit, Type, Numero, NumeroDeLot, Spec, Conditions
Dim i, j

' ***************************************************************************************
' on choisit ici le numéro de produit qui nous intéresse
NumeroProduit = 58947
' ***************************************************************************************
Sheets("Table1").Select
For i = 2 To 800
Range("K" & i).Select
' Recherche du N° de produit d'intéret et copie des données d'intéret dans les variables
If Range("K" & i) = NumeroProduit Then
Type = Range("AF" & i)
Numero = Range("AE" & i)
NumeroDeLot = Range("G" & i)
Spec = Range("AH" & i)
Conditions = Range("AP" & i & ":" & "BZ" & i)
' Transfère les données d'intéret d'une stab dans la feuille Sheet1
Sheets("Sheet1").Select
For j = 2 To 200
If Range("A" & j) = "" Then
Range("A" & j) = NumeroProduit
Range("B" & j) = Type
Range("C" & j) = Numero
Range("D" & j) = NumeroDeLot
Range("E" & j) = Spec
Range("F" & j & ":" & "P" & j) = Conditions
Exit For
End If
Next j
End If
Next i
End Sub
 
Re : Exit For

Re

d'ailleurs, je remanie un peu ton code pour enlever les sélections inutiles

A+

Sub RappatriementInfoParNumeroProduit()

Dim NumeroProduit, Type_Produit, Numero, NumeroDeLot, Spec, Conditions
Dim i, j

' ************************************************** *************************************
' on choisit ici le numéro de produit qui nous intéresse
NumeroProduit = 58947
' ************************************************** *************************************
For i = 2 To 800
' Recherche du N° de produit d'intéret et copie des données d'intéret dans les variables
If Sheets("Table1").Range("K" & i) = NumeroProduit Then
With Sheets("Table1")
Type_Produit = .Range("AF" & i)
Numero = .Range("AE" & i)
NumeroDeLot = .Range("G" & i)
Spec = .Range("AH" & i)
Conditions = .Range("AP" & i & ":" & "BZ" & i)
End With
' Transfère les données d'intéret d'une stab dans la feuille Sheet1
For j = 2 To 200
With Sheets("Sheet1")
If .Range("A" & j) = "" Then
.Range("A" & j) = NumeroProduit
.Range("B" & j) = Type_Produit
.Range("C" & j) = Numero
.Range("D" & j) = NumeroDeLot
.Range("E" & j) = Spec
.Range("F" & j & ":" & "P" & j) = Conditions
j = 200
End If
End With
Next j
End If
Next i
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
8
Affichages
390
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
903
Réponses
10
Affichages
1 K
Réponses
3
Affichages
922
Réponses
3
Affichages
879
Réponses
2
Affichages
771
Réponses
23
Affichages
2 K
Retour