Recherche chaîne de caractère dans une colonne
Résolu/Fermé
A voir également:
- Recherche chaîne de caractère dans une colonne
- Excel recherche chaine de caractère dans une colonne ✓ - Forum - Excel
- Excel recherche chaîne de caractère dans colonne ✓ - Forum - Excel
- Excel formule : savoir si une cellule contient partie texte ✓ - Forum - Excel
- Excel recherche chaine de caractère dans plage ✓ - Forum - Excel
- Extraire chaine de caractère depuis une colonne ✓ - Forum - Excel
5 réponses
BuzuzimaD
Modifié le 18 mai 2020 à 17:47
- Messages postés
- 4
- Date d'inscription
- lundi 18 mai 2020
- Statut
- Membre
- Dernière intervention
- 7 juillet 2020
Modifié le 18 mai 2020 à 17:47
Bonjour,
Voici le lien du fichier en question :
https://www.cjoint.com/c/JEspVQmlMWS
Voici le lien du fichier en question :
https://www.cjoint.com/c/JEspVQmlMWS
Le Pingou
18 mai 2020 à 23:47
- Messages postés
- 11113
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 15 août 2022
18 mai 2020 à 23:47
Bonsoir,
Réponse demain matin.
Réponse demain matin.
Le Pingou
19 mai 2020 à 07:08
- Messages postés
- 11113
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 15 août 2022
19 mai 2020 à 07:08
Bonjour,
Ci joint ma petite contribution qui utilise une macro VBA, bonne découverte.
Merci du retour.
Le lien: https://www.cjoint.com/c/JEtfiudjnb0
Ci joint ma petite contribution qui utilise une macro VBA, bonne découverte.
Merci du retour.
Le lien: https://www.cjoint.com/c/JEtfiudjnb0
BuzuzimaD
19 mai 2020 à 20:57
- Messages postés
- 4
- Date d'inscription
- lundi 18 mai 2020
- Statut
- Membre
- Dernière intervention
- 7 juillet 2020
19 mai 2020 à 20:57
Bonsoir,
J'ai pu tester et adapter la macro à mon besoin, elle est parfaite.
Encore merci, le sujet peut être clos.
Buzuzima
J'ai pu tester et adapter la macro à mon besoin, elle est parfaite.
Encore merci, le sujet peut être clos.
Buzuzima
Buzuzima
>
BuzuzimaD
12 juin 2020 à 09:08
- Messages postés
- 4
- Date d'inscription
- lundi 18 mai 2020
- Statut
- Membre
- Dernière intervention
- 7 juillet 2020
12 juin 2020 à 09:08
Bonjour,
J'ai testé et adapté la macro qui répond parfaitement à mon besoin en allant chercher les informations dont j'ai besoin dans 2 feuilles de données.
Néanmoins je souhaiterai modifier le code afin recopier plus facilement les champs de plusieurs colonnes dans un soucis "d'élégance du code".
Sub RechercheMultiple1()
Dim rf As Range, Cible As Range
Range("a3:a" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
Range("b3:b" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
Range("c3:c" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
For Each rf In Range("J2:J" & Cells(Rows.Count, 2).End(xlUp).Row)
If rf <> "" Then
With Sheets("METIER")
For Each Cible In .Range("R2:R" & .Cells(Rows.Count, 3).End(xlUp).Row)
If InStr(Cible, rf) = 0 Then
' MsgBox "Non"
Else
' MsgBox "Oui"
'ad = rf.Address
Range(rf.Address).Offset(0, -9) = .Range(Cible.Address).Offset(0, -15)
Range(rf.Address).Offset(0, -8) = .Range(Cible.Address).Offset(0, -13)
Range(rf.Address).Offset(0, -7) = .Range(Cible.Address).Offset(0, -12)
Range(rf.Address).Offset(0, -6) = .Range(Cible.Address).Offset(0, -11)
nb = nb + 1
Exit For
End If
Next Cible
End With
End If
Next rf
MsgBox "La recherche est terminée. il y a " & nb & " référence/s correspondante/s."
For Each rf In Range("I2:I" & Cells(Rows.Count, 2).End(xlUp).Row)
If rf <> "" Then
With Sheets("SMS")
For Each Cible In .Range("E2:E" & .Cells(Rows.Count, 3).End(xlUp).Row)
If InStr(Cible, rf) = 0 Then
' MsgBox "Non"
Else
' MsgBox "Oui"
'ad = rf.Address
Range(rf.Address).Offset(0, -8) = .Range(Cible.Address).Offset(0, -2)
Range(rf.Address).Offset(0, -7) = .Range(Cible.Address).Offset(0, 0)
Range(rf.Address).Offset(0, -6) = .Range(Cible.Address).Offset(0, 1)
Range(rf.Address).Offset(0, -5) = .Range(Cible.Address).Offset(0, 2)
nb = nb + 1
Exit For
End If
Next Cible
End With
End If
Next rf
MsgBox "La recherche est terminée. il y a " & nb & " référence/s correspondante/s."
End Sub
Merci d'avance pour vos idées.
Buzuzima
J'ai testé et adapté la macro qui répond parfaitement à mon besoin en allant chercher les informations dont j'ai besoin dans 2 feuilles de données.
Néanmoins je souhaiterai modifier le code afin recopier plus facilement les champs de plusieurs colonnes dans un soucis "d'élégance du code".
Sub RechercheMultiple1()
Dim rf As Range, Cible As Range
Range("a3:a" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
Range("b3:b" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
Range("c3:c" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
For Each rf In Range("J2:J" & Cells(Rows.Count, 2).End(xlUp).Row)
If rf <> "" Then
With Sheets("METIER")
For Each Cible In .Range("R2:R" & .Cells(Rows.Count, 3).End(xlUp).Row)
If InStr(Cible, rf) = 0 Then
' MsgBox "Non"
Else
' MsgBox "Oui"
'ad = rf.Address
Range(rf.Address).Offset(0, -9) = .Range(Cible.Address).Offset(0, -15)
Range(rf.Address).Offset(0, -8) = .Range(Cible.Address).Offset(0, -13)
Range(rf.Address).Offset(0, -7) = .Range(Cible.Address).Offset(0, -12)
Range(rf.Address).Offset(0, -6) = .Range(Cible.Address).Offset(0, -11)
nb = nb + 1
Exit For
End If
Next Cible
End With
End If
Next rf
MsgBox "La recherche est terminée. il y a " & nb & " référence/s correspondante/s."
For Each rf In Range("I2:I" & Cells(Rows.Count, 2).End(xlUp).Row)
If rf <> "" Then
With Sheets("SMS")
For Each Cible In .Range("E2:E" & .Cells(Rows.Count, 3).End(xlUp).Row)
If InStr(Cible, rf) = 0 Then
' MsgBox "Non"
Else
' MsgBox "Oui"
'ad = rf.Address
Range(rf.Address).Offset(0, -8) = .Range(Cible.Address).Offset(0, -2)
Range(rf.Address).Offset(0, -7) = .Range(Cible.Address).Offset(0, 0)
Range(rf.Address).Offset(0, -6) = .Range(Cible.Address).Offset(0, 1)
Range(rf.Address).Offset(0, -5) = .Range(Cible.Address).Offset(0, 2)
nb = nb + 1
Exit For
End If
Next Cible
End With
End If
Next rf
MsgBox "La recherche est terminée. il y a " & nb & " référence/s correspondante/s."
End Sub
Merci d'avance pour vos idées.
Buzuzima
Le Pingou
12 juin 2020 à 10:18
- Messages postés
- 11113
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 15 août 2022
12 juin 2020 à 10:18
Bonjour,
Est-ce que votre code fonctionne Oui ou Non?
Si oui c'est parfait.
Si non qu'elle est le message d'erreur et sur quelle ligne de code!
Salutations.
Le Pingou
Est-ce que votre code fonctionne Oui ou Non?
Si oui c'est parfait.
Si non qu'elle est le message d'erreur et sur quelle ligne de code!
Salutations.
Le Pingou
Buzuzima
>
Le Pingou
12 juin 2020 à 15:25
- Messages postés
- 11113
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 15 août 2022
12 juin 2020 à 15:25
Bonjour,
Oui le code fonctionne bien, je souhaitais simplement l'optimiser.
Salutations,
Buzuzima
Oui le code fonctionne bien, je souhaitais simplement l'optimiser.
Salutations,
Buzuzima
Buzuzima
>
Le Pingou
2 juil. 2020 à 16:27
- Messages postés
- 11113
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 15 août 2022
2 juil. 2020 à 16:27
Bonjour,
Je souhaiterai rajouter une fonctionnalité à la macro :
Colorier le texte cible recherché dans la colonne R de la feuille METIER
For Each rf In Range("J2:J" & Cells(Rows.Count, 2).End(xlUp).Row)
If rf <> "" Then
With Sheets("METIER")
For Each Cible In .Range("R2:R" & .Cells(Rows.Count, 3).End(xlUp).Row)
If InStr(Cible, rf) = 0 Then
' MsgBox "Non"
Else
' MsgBox "Oui"
'ad = rf.Address
Range(rf.Address).Offset(0, -9) = .Range(Cible.Address).Offset(0, -15)
Range(rf.Address).Offset(0, -8) = .Range(Cible.Address).Offset(0, -13)
Range(rf.Address).Offset(0, -7) = .Range(Cible.Address).Offset(0, -12)
Range(rf.Address).Offset(0, -6) = .Range(Cible.Address).Offset(0, -11)
nb = nb + 1
Exit For
End If
Next Cible
End With
End If
Next rf
MsgBox "La recherche est terminée. il y a " & nb & " référence/s correspondante/s."
Merci d'avance pour vos idées.
Cordialement,
Je souhaiterai rajouter une fonctionnalité à la macro :
Colorier le texte cible recherché dans la colonne R de la feuille METIER
For Each rf In Range("J2:J" & Cells(Rows.Count, 2).End(xlUp).Row)
If rf <> "" Then
With Sheets("METIER")
For Each Cible In .Range("R2:R" & .Cells(Rows.Count, 3).End(xlUp).Row)
If InStr(Cible, rf) = 0 Then
' MsgBox "Non"
Else
' MsgBox "Oui"
'ad = rf.Address
Range(rf.Address).Offset(0, -9) = .Range(Cible.Address).Offset(0, -15)
Range(rf.Address).Offset(0, -8) = .Range(Cible.Address).Offset(0, -13)
Range(rf.Address).Offset(0, -7) = .Range(Cible.Address).Offset(0, -12)
Range(rf.Address).Offset(0, -6) = .Range(Cible.Address).Offset(0, -11)
nb = nb + 1
Exit For
End If
Next Cible
End With
End If
Next rf
MsgBox "La recherche est terminée. il y a " & nb & " référence/s correspondante/s."
Merci d'avance pour vos idées.
Cordialement,
Le Pingou
18 mai 2020 à 16:09
- Messages postés
- 11113
- Date d'inscription
- mercredi 11 août 2004
- Statut
- Contributeur
- Dernière intervention
- 15 août 2022
18 mai 2020 à 16:09
Bonjour,
Ce serait plus profitable si vous mettez le fichier avec l'exemple sur https://www.cjoint.com/
et poster le lien reçu.
Ce serait plus profitable si vous mettez le fichier avec l'exemple sur https://www.cjoint.com/
et poster le lien reçu.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question