1 pièce(s) jointe(s)
Je n'arrive pas à utiliser ce code générer par chatgpt
Bonjour a tous
J'utilise ce code que chat Gpt m'a fourni mais ca ne fonctionne pas (je n'y connais rien en VBA ) voici le code
Sub feuill4Croisement()
Dim traite As Range, traiteL As Long, traiteC As Long, valeurA As String, valeurB As String, _
valeurG As Range, i As Long, j As Long
Set traite = Feuil4.Range("A1:D1017") 'plage de données à traiter
traiteL = traite.Rows.Count 'nombre de lignes de la plage de données à traiter
traiteC = traite.Columns.Count 'nombre de colonnes de la plage de données à traiter
For i = 1 To traiteL 'parcours des lignes de la plage de données à traiter
valeurA = Feuil4.Cells(i, 1).Value 'valeur de la colonne A de la ligne en cours de traitement
valeurB = Feuil4.Cells(i, 2).Value 'valeur de la colonne B de la ligne en cours de traitement
Set valeurG = Nothing 'réinitialisation de la variable valeurG
'recherche de la valeur dans la colonne D de la plage de données
For j = 1 To traiteL
If traite.Cells(j, 4).Value = valeurB Then
Set valeurG = traite.Cells(j, 4)
Exit For
End If
Next j
'écriture de la valeur trouvée dans la colonne C de la ligne en cours de traitement
If Not valeurG Is Nothing Then
Feuil4.Cells(i, 3).Value = valeurG.Value
End If
Next i
End Sub
Dans un deuxième temps je vous joint ce que j'ai demandé a chatgpt
Voila ce que je t ai demandé
D'abord je vais te parler des valeurs des cellules que je veux traiter : c'est du texte qui se compose comme suit : A-A01-01-0,j'ai 1017 lignes qui comportent ce genre de valeur qui varie seulement entre les lettres et les chiffres.Ensuite mon tableau avec ces données est composé de la colonne A "Ancien emplt" où ma valeur décrite précédemment est entrée,puis la colonne B "Code article", la colonne C "Produit" et la colonne D " Nouvel emplt" où le même type de valeur que la colonne A est entrée, Toutes les lignes ont des valeurs dans les colonnes a jusqu'à a E, ce que je veux faire c'est créer en G et en H un croisement de valeurs où la valeur qui est en G1 correspond à la valeur de A1 et H1 à D1 et puis en G2 retrouver la valeur de H1 et me renvoyer en H2 la valeur correspondante à G2 trouvée en D et ainsi de suite jusqu'à avoir traité les valeurs des lignes 1 à 1017, il y a 2 conditions à respecter la première ne traiter qu'une seule fois chaque valeurs des lignes 1 à 1017 donc toutes pas reprendre une valeur déja traitée dans la colonne G avant la cellule en question et deuxièmement si la valeur de H n'est pas retrouvée dans la cellule G alors prendre une autre valeur de la colonne A et toujours en prenant en compte la première condition que je t'ai donnéeune seule fois chaque valeurs des lignes 1 a 1017 donc ne pas reprendre une valeur déja traitée dans la colonne G avant la cellule en question et deuxièmement si la valeur de H n'est pas retrouvée dans la cellule G alors prendre une autre valeur de la colonne A et toujours en prenant en compte la première condition que je t'ai donnéeune seule fois chaque valeurs des lignes 1 a 1017 donc ne pas reprendre une valeur déja traitée dans la colonne G avant la cellule en question et deuxièmement si la valeur de H n'est pas retrouvée dans la cellule G alors prendre une autre valeur de la colonne A et toujours en prenant en compte la première condition que je t'ai donné
Et pour compléter je joins le fichier sur lequel je travaille[ATTACH]635624