Bonjour,
Après une semaine d'assimilation de VBA et Excel, ainsi que deux jours perdu sur mon récent problème, je viens à vour pour mener à bien mon projet, en esseyant d'etre le plus clair possible.
Donc, je dispose d'une liste d'information de ce type (confidentiel, donc je met n'importe quoi) :
AB_CVDGFH_AEJ = '&Alelu Bla';
AB_CVDGFH_AEJ correspond à l'identifiant.
& signifie que la lettre suivant sera le raccourcis de cet identifiant.
Alelu Bla' correspond au libélé, afficher sur le logiciel.
Afin de ne pas vous endormir, j'en viens directement à mon problème :
Je dois travailler sur différente langues, l'identifiant est invariant, mais le libélé varie.
Colonne A, j'ai donc une série de AB_CVDGFH_AEJ = '&Alelu Bla';.
Colonne B, j'ai une longue liste d'identifiant, classé en groupe.
Je cherche, grace à une macro, que Excel m'affiche dans une colonne C, le libélé (qui lui change en fonction de la langue) à droite de l'identifiant qui lui correspond, ainsi que le raccourcis. Petit exemple :
A
AA_BLABLIBLOU_EF = '&bonjour';
AA_BLABLI_EG = '&hello';
BB_BLABLA_AA = '"welcome';
AA_BLABLOU_AA = '&salut';
B
AA_BLABLIBLOU_EF
AA_BLABLOU_AA
BB_BLABLA_AA
(cellule vide)
AA_BLABLi_AA
(donc colonne B pas du tout dans le même ordre que la colonne A)
Et je voudrais qu'automatiquement, dans la colonne C, j'ai :
&bonjour
&salut
&welcome
(cellule vide)
&hello
(en face du bon identifiant donc).
EDIT : le "&" correspond au raccourcis du mot auquel il est attaché, mais peut varier. Ex: pour &Hello, c'est H le raccourcis, mais on aurait très bien pu avoir Hell&o, à savoir o comme raccourcis. Pas d'impact sur le resulat recherché je pense, mais je le précise !
Ceci pour plusieurs miliers d'identifiants. Une sorte de grand tri en fait.
J'ai réussi à importer la colonne A grâce à
Ou par exemple retirer les , . ect. de la fin de mes lignes avec
Mais impossible de faire la comparaison d'une chaine par rapport au bout d'une autre chaine, et d'en sortir encore une autre chaine dans une colonne, en face de la colonne corespondante, que ce soit avec des InStr, Like et autre.
Merci d'avance pour votre aide.
Après une semaine d'assimilation de VBA et Excel, ainsi que deux jours perdu sur mon récent problème, je viens à vour pour mener à bien mon projet, en esseyant d'etre le plus clair possible.
Donc, je dispose d'une liste d'information de ce type (confidentiel, donc je met n'importe quoi) :
AB_CVDGFH_AEJ = '&Alelu Bla';
AB_CVDGFH_AEJ correspond à l'identifiant.
& signifie que la lettre suivant sera le raccourcis de cet identifiant.
Alelu Bla' correspond au libélé, afficher sur le logiciel.
Afin de ne pas vous endormir, j'en viens directement à mon problème :
Je dois travailler sur différente langues, l'identifiant est invariant, mais le libélé varie.
Colonne A, j'ai donc une série de AB_CVDGFH_AEJ = '&Alelu Bla';.
Colonne B, j'ai une longue liste d'identifiant, classé en groupe.
Je cherche, grace à une macro, que Excel m'affiche dans une colonne C, le libélé (qui lui change en fonction de la langue) à droite de l'identifiant qui lui correspond, ainsi que le raccourcis. Petit exemple :
A
AA_BLABLIBLOU_EF = '&bonjour';
AA_BLABLI_EG = '&hello';
BB_BLABLA_AA = '"welcome';
AA_BLABLOU_AA = '&salut';
B
AA_BLABLIBLOU_EF
AA_BLABLOU_AA
BB_BLABLA_AA
(cellule vide)
AA_BLABLi_AA
(donc colonne B pas du tout dans le même ordre que la colonne A)
Et je voudrais qu'automatiquement, dans la colonne C, j'ai :
&bonjour
&salut
&welcome
(cellule vide)
&hello
(en face du bon identifiant donc).
EDIT : le "&" correspond au raccourcis du mot auquel il est attaché, mais peut varier. Ex: pour &Hello, c'est H le raccourcis, mais on aurait très bien pu avoir Hell&o, à savoir o comme raccourcis. Pas d'impact sur le resulat recherché je pense, mais je le précise !
Ceci pour plusieurs miliers d'identifiants. Une sorte de grand tri en fait.
J'ai réussi à importer la colonne A grâce à
Code:
Dim Repertoire As String, Fichier As String
Dim strFullName As Variant
Dim Cn As Object, Rs As Object
'Sélection du ficher
strFullName = Application.GetOpenFilename("Fichiers textes (*.txt),*.txt", , "D:\Test\uStrs.txt")
'On sort si aucun fichier n'est sélectionné
If strFullName = False Then Exit Sub
Application.ScreenUpdating = False
Fichier = Dir(strFullName)
Repertoire = Left(strFullName, Len(strFullName) - (Len(Fichier) + 1))
'Connection
Set Cn = CreateObject("ADODB.Connection")
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Repertoire & ";" & _
"Extended Properties=""text;HDR=Yes;FMT=Delimited"""
'Requete
Set Rs = CreateObject("ADODB.Recordset")
Rs.Open "SELECT * FROM [" & Fichier & "]", Cn, 3, 1, 1
'Boucle sur le résultat de la requete
While Not Rs.EOF
'Ecriture des données dans la feuille
'65536 spécifie le nombre de lignes par feuille
ActiveSheet.Range("A7").CopyFromRecordset Rs, 65536
Wend
Rs.Close
Set Rs = Nothing
Cn.Close
Set Cn = Nothing
Application.ScreenUpdating = True
End Sub
Ou par exemple retirer les , . ect. de la fin de mes lignes avec
Code:
Dim i
For i = 1 To 1000
If Right(Range("A" & i), 1) = "'" Then Range("A" & i) = Left(Range("A" & i), Len(Range("A" & i)) - 1)
Next
Mais impossible de faire la comparaison d'une chaine par rapport au bout d'une autre chaine, et d'en sortir encore une autre chaine dans une colonne, en face de la colonne corespondante, que ce soit avec des InStr, Like et autre.
Merci d'avance pour votre aide.
Dernière édition: