Mettre les 6 premiers caractères dans une variable

  • 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,
Je souhaiterais comparer des noms se trouvant dans 2 colonnes distinctes. Seuls les 6 premiers caractères peuvent être communs.
Je souhaiterais donc qu'il mette dans une variable les 6 premiers caractères de la cellule ("M" & i) et qu'il aille ensuite faire une boucle sur la colonne ("A" & j).
Mon problème est que je ne sais pas comment lui faire mettre dans une variable (DebutDuNom) les 6 premiers caractères.
Quelqu'un peut-il me dire svp comment faire ?
Merci d'avance.

Fab
 
Re : Mettre les 6 premiers caractères dans une variable

Bonjour Fab117 🙂,
Essaie le code suivant :
Code:
Dim I As Integer, Cellule As String, DébutDuNom As String
For I = 1 To 10
    Cellule = "M" & I
    DébutDuNom = Mid(Range(Cellule), 1, 6) + DébutDuNom
Next I
😎
 
Re : Mettre les 6 premiers caractères dans une variable

bonjour,

pour trouver les 6 car de gauche
nom = left(mavariable ou range("D4") )
pour la gauche, utilises right(...)

pour extraire une chaine dans une chaine de texte
mid(mavariable,debut, nombre de caracteres)
 
Re : Mettre les 6 premiers caractères dans une variable

Merci pour votre aide.

Préférant travailler avec des Range("A" & i), j'ai légèrement adapter votre code.

Mais j'ai 2 buggs.
Tout d'abord, il refuse de me compiler "NomComplet = CheminDAcces & NomFichier".

Ensuite, lorsqu'il rencontre la correspondance "DébutDuTag = DébutDuNom", il copie bien "NomComplet" en ("U" & j), mais il insère une nouvelle ligne.

Pourriez-vous svp m'indiquer mes erreurs.

Ci dessous le code complet.

Fab


Sub CorrespondanceNomFichierAvecTag()

Dim CheminDAcces As String
Dim NomFichier As String
Dim NomComplet As String
Dim i As Integer
Dim j As Integer
Dim DébutDuNom As String
Dim DébutDuTag As String

CheminDAcces = "C:\tmp\"


' Boucle sur les noms de fichiers
For i = 3 To 8
' Met en mémoire les 6 caractères du nom du fichier image
DébutDuNom = Mid(Range("W" & i), 1, 8)
' Met en mémoire le nom complet du fichier image
NomFichier = Range("W" & i).Value

' Boucle sur les noms des Tags
For j = 3 To 8
' Met en mémoire les 6 caractères du nom du Tag
DébutDuTag = Mid(Range("A" & j), 1, 8)
If DébutDuTag = DébutDuNom Then
NomComplet = CheminDAcces & NomFichier
MsgBox NomComplet
Range("U" & j).Value = NomComplet
End If

Next j

Next i

End Sub
 
Re : Mettre les 6 premiers caractères dans une variable

C'est une excellente idéée, ce d'autant plus que j'ai une nouvelle difficulté.

En résumé :
Il s'agit d'une base de donnée qui sera utilisée par un fichier Word via fusion publipostage.
La colonne "E" correspond au lien vers une photo illustrant l'objet

La nouvelle difficulté est que le nombre de caractère constituant le nom du Tag varie, ce qui engendre une non reconnaissance du fichier photo correspondant (tester la macro du fichier joint qui illustrera le problème).
Il faudrait donc qu'au lieu de mettre par défaut les 8 premiers caractères du Tag, il compte le nombre de caractère du Tag et définisse qu'il en recherchera le même nombre dans le nom du fichier image.

Merci.

Fab
 

Pièces jointes

- 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
20
Affichages
2 K
Retour