Bonjour tout le monde,
Je suis depuis un petit moment ce forum génial pour améliorer mes connaissances basiques des macros. Jusqu'à maintenant après 2h ou 3h de recherches, je finissais par trouver le code qui me convenait ... Sauf que là, je bute depuis plus longtemps !
Mon problème est le suivant
Sur une feuille data : J'ai une colonne avec +10000 entrées où il y a des chaines de caractères longs
Sur une feuille motscles : j'ai 2 colonnes avec +40entrées, la première contient des mots clès, la 2ème un code correspondant au mot clé
Puis enfin une colonne sensée recevoir le résultat case par case
Je veux chercher sur la colonne de ma feuille data SEQUENTIELLEMENT tous les mots clés de la 1ère colonne de la feuille motscles, dès qu'une correspondance est trouvée, la boucle s'arrête, renseigne une case destinée à recevoir un code, avec le code correspondant au mot clé trouvé, puis passe à l'entrée suivante de ma feuille data
J'ai d'abord fait le code suivant,
Sub macro_generation_segments()
derniere_ligne = Sheets("data").Range("K4").End(xlDown).Row
Derniere_ligne2 = Sheets("motscles").Range("A3").End(xlDown).Row
Dim Tab_motscles()
ReDim Tab_motscles(Derniere_ligne2 - 1, 1)
For j = 0 To Derniere_ligne2 - 1
Tab_motscles(j, 0) = Sheets("motscles").Range("A" & j + 2)
Tab_motscles(j, 1) = Sheets("motscles").Range("B" & j + 2)
Next
Dim Tab_data()
ReDim Tab_data(derniere_ligne - 1)
For i = 0 To derniere_ligne - 1
Tab_data(i) = Sheets("data").Range("K" & i + 4)
Next
For i = 0 To derniere_ligne
For j = 0 To Derniere_ligne2
If Tab_data(i) Like Tab_motscles(j, 0) Then Sheets("data").Range("AA" & i + 4) = Tab_motscles(j, 1)
Next
Next
End Sub
mais excel ne voulait pas l'executer, erreur indice 9, ça a un rapport avec la définition des tableaux. Mais je ne suis pas arrivé à trouver ce qui clochait. Du coup je l'ai fait sur mesure pour le fichier que je traite, et là, j'ai aucun résultat qui s'affiche car les tests font que rien n'est trouvé. Je pense que ça a un rapport avec Like et la syntaxe globale
Sub macro_generation_segments()
For i = 4 To 13504
For j = 3 To 45
If Sheets("data").Range("K" & i).Value Like Sheets("motscles").Range("A" & j).Value Then
Sheets("data").Range("AA" & i) = Sheets("motscles").Range("B" & j).Value
End If
Next
Next
End Sub
Merci de votre aide !