Si 10 caractères communs entre 2 cellules = copier valeurs cell adjacentes

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

Re : Si 10 caractères communs entre 2 cellules = copier ces 8 caractères dans une new

Bonjour,

voir fichier joint
Code:
Sub Bouton1_Clic()
For j = 1 To Range("A65535").End(xlUp).Row
For i = 1 To Len(Cells(j, 1)) - 10
compare = UCase(Mid(Cells(j, 1), i, 10))
If WorksheetFunction.Search(compare, UCase(Cells(j, 2))) Then
Cells(j, 3) = LCase(compare)
Exit For
End If
Next i
Next j
End Sub

à+
Philippe
 

Pièces jointes

Dernière édition:
Re : Si 10 caractères communs entre 2 cellules = copier ces 8 caractères dans une new

Merci
J'aurais besoin de ce comportement exact (fichier attaché)
Si string commun entre cellules Cx et Dx (10 caractères minimum) alors copier Ex en Gx et Fx en Hx
J'ai besoin que la macro fasse toutes les lignes jusqu'en bas du tableau
Désolé pour le manque de précision
Merci
 

Pièces jointes

Dernière modification par un modérateur:
Re : Si 10 caractères communs entre 2 cellules = copier valeurs cell adjacentes

Bonjour à tous

pas tout compris
J'aurais besoin de ce comportement exact (fichier attaché)
Si string commun entre cellules Cx et Dx (10 caractères minimum) ....

dans l'exemple du classeur fourni, seule la ligne 2 remplirait les bonnes conditions (??), et, je n'ai pas vu la partie commune entre Category-Banner--Dresses.jpg (C2) et Baby__Kids_and_Toys,Clearance_Sale (D2)

Quelques précisions ...

A+
 
Re : Si 10 caractères communs entre 2 cellules = copier valeurs cell adjacentes

Bonjour,

Merci pour votre réponse.

J'ai mis à jour le fichier, ce n'était pas clair en effet.
Dans l'exemple attaché, seule la ligne 1 remplirait les conditions. Ce sera le cas dans la véritable version du fichier.
C'était juste pour l'exemple. Je peux refaire le même fichier avec chaque ligne qui valide l'exemple.

Il me faudrait une formule que je puisse tirer jusqu'en bas du tableau.

Merci
 

Pièces jointes

Dernière modification par un modérateur:
Re : Si 10 caractères communs entre 2 cellules = copier valeurs cell adjacentes

Bonjour

Quelques questions :
* Doit-on faire la différence entre les minuscules et les majuscules ?
* La ligne 9 ne convient-elle pas aussi : Je trouve les caractères c a t e o r y b n d s en commun en C9 et D9 si on ne fait pas la différence entre minuscules et majuscules, soit 11 au total ?
* Doit on prendre en compte les caractères non alphabétiques ?

@ plus
 
Re : Si 10 caractères communs entre 2 cellules = copier valeurs cell adjacentes

Bonjour et merci pour vos questions.

*Pas de différence min/maj
*Les caractères doivent etre collés (et non séparés)
*Oui tout à fait

Merci
 
Re : Si 10 caractères communs entre 2 cellules = copier valeurs cell adjacentes

Bonsoir



C'est à dire ? Un exemple...

@ plus

Exemple :

baby1baby2blablabla / blablablababy1baby2
== match, car les caractères sont collés
Je cherche à faire matcher des chaines de caractères (=un mot, une expression)

abcdefg / gfedcba ==> pas de match, même si les mêmes caractères sont présents
 
Re : Si 10 caractères communs entre 2 cellules = copier valeurs cell adjacentes

Bonsoir

Je n'avais pas bien compris ta demande. Cf. une nouvelle proposition en pièce jointe pour tester la présence de 10 caractères à la suite.

@ plus

P.S : La formule prend en compte dans la série de 10 caractères les espaces entre les mots. S'il faut ne pas en tenir compte, il faudra la modifier, mais cela ne doit pas être très compliqué.
 

Pièces jointes

Dernière édition:
Re : Si 10 caractères communs entre 2 cellules = copier valeurs cell adjacentes

Bonjour à tous

une solution par fonction personnalisée

a copier dans un module standard

Code:
Function Commun(Contenant, Contenu)
 Dim i As Long, Trouve As Boolean
 Trouve = False
 For i = 1 To Len(Contenu) - 10
    If UCase(Contenant) Like "*" & UCase(Mid(Contenu, i, 10)) & "*" Then
        Trouve = True
        Exit For
    End If
 Next i

Commun = IIf(Trouve, "Commun", "")

End Function

puis utiliser comme une fonction courante:
Insérer fonction, choisir Personnalisées, puis Commun.

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour