Importer un tableau txt dans excel et transformer les codes articles en EAN13

h.b.y

XLDnaute Nouveau
Bonjour,
Je voudrais une moulinette VBA en fichier joint, qui me permet en lançant Excel, d'importer un fichier texte c_barre.txt ci-joint qui a la structure suivante:Référence article;Désignation article;unité;Prix de vente HT;Prix de vente TTC; code Barre, cette moulinette doit me rajouter une colonne m'affichant le code EAN13(de la colonne code barre).
Je note que le fichier à importer est aléatoire en nombre de lignes et la police EAN13.TTF est installée.
J'ai zippé c_barre.txt pour pouvoir le joindre.
Je vous remercie pour votre aide que j'attends impatiemment..
Cordialement.
HBY
 

Pièces jointes

  • X_BARRE.ZIP
    1.1 KB · Affichages: 80
  • X_BARRE.ZIP
    1.1 KB · Affichages: 56
  • X_BARRE.ZIP
    1.1 KB · Affichages: 62

camarchepas

XLDnaute Barbatruc
Re : Importer un tableau txt dans excel et transformer les codes articles en EAN13

Bonsoior ,

J'ai essayé une façon conventionnelle avec opentext , mais le format du fichier texte n'est pas adapté , donc je me rabat sur la solution classique de lecture de fichier ,
a affiner , le code barre est sensé être dans quelle colonne ?

Code:
Sub lit()
Dim Phrase As String
Dim Ligne As Long
Open "C:\Appli_Excel\Test\BLeu\c_barre.txt" For Input As #1    ' Ouvre le fichier en lecture.
Do While Not EOF(1)    ' Effectue la boucle jusqu'à la fin du fichier.
     Line Input #1, Phrase   ' Lit les données dans deux variables.
     Phrase = Replace(Phrase, vbTab, "")
     Ligne = Ligne + 1
     Range("A" & Ligne & ":F" & Ligne) = Split(Phrase, ";")
    ' Affiche les données dans la fenêtre Exécution.
Loop
Close #1
End Sub
 

h.b.y

XLDnaute Nouveau
Re : Importer un tableau txt dans excel et transformer les codes articles en EAN13

Bonjour,
Merci pour votre réponse, je voudrais afficher le code EAN13 dans la colonne G
En lançant votre moulinette VBA, j'obtiens le tableau ci-joint, la colonne G m'affiche #N/A au lieu du code EAN13.
Prière de m'adapter votre code source qui m'a été envoyé.
Merci
Cordialement
HBY

Résultat obtenu:
A B C D E F G
102010116 JARETTE LAINE UNIE NOIR TAILLE 39/42 PAIRE 2,000 2,360 6191703602401 #N/A
102010117 JARETTE FIL D'ECOSSE NOIR PAIRE 2,692 3,176 6191703602418 #N/A
102050116 JARETTE LAINE LOSANGE TAILLE 39/42 PAIRE 2,000 2,360 6191703602456 #N/A
102050117 JARETTE LAINE LOSANGE TAILLE 43/45 PAIRE 2,000 2,360 6191703602463 #N/A
1101010102 JARET H FIL D'ECOS UNIE NOIR T10 DZ 26,852 31,685 6191703600193 #N/A
1101010103 JARET H FIL D'ECOS UNIE NOIR T10.5 DZ 26,852 31,685 6191703603088 #N/A
 

Staple1600

XLDnaute Barbatruc
Re : Importer un tableau txt dans excel et transformer les codes articles en EAN13

Bonjour à tous


camarchepas
Faudrait peut-être que tu te presses un peu, non ?
Je vous remercie pour votre aide que j'attends impatiemment..
Prière de m'adapter votre code source qui m'a été envoyé.
Tu fais attendre monsieur h.b.y
T'inquiètes on te réchauffera ton bol de soupe plus tard ;)
Allez zou au boulot !
 

h.b.y

XLDnaute Nouveau
Re : Importer un tableau txt dans excel et transformer les codes articles en EAN13

lol...............
je ne maîtrise pas le VBA, j'ai juste besoin de ce petit programme pour imprimer la liste et coller ces Codes barres sur les articles.
C'est pour cela, j'ai demandé de l'aide.
Merci
 

laurent950

XLDnaute Accro
Re : Importer un tableau txt dans excel et transformer les codes articles en EAN13

Bonsoir,

c'est fait :

VB:
Sub lit()
Dim Phrase As String
Dim Ligne As Long
Open "C:\Appli_Excel\Test\BLeu\c_barre.txt" For Input As #1    ' Ouvre le fichier en lecture.
Do While Not EOF(1)    ' Effectue la boucle jusqu'à la fin du fichier.
     Line Input #1, Phrase   ' Lit les données dans deux variables.
     Phrase = Replace(Phrase, vbTab, "")
     Ligne = Ligne + 1
     Range("A" & Ligne & ":F" & Ligne) = Split(Phrase, ";")
     If Ligne >= 7 Then
     Range("G" & Ligne) = "OK = Prière de m'adapter votre code source... EAN13"
     End If
    ' Affiche les données dans la fenêtre Exécution.
Loop
Close #1
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Importer un tableau txt dans excel et transformer les codes articles en EAN13

Re, bonsoir laurent950


h.b.y
Tu peux demander toute l'aide que tu veux
Pas de souci sur ce point.
Mais il n'y a pas de délai ou d’urgence à respecter
L'aide arrivera au rythme qu'auront choisis ceux qui veulent ou peuvent t'aider
Et ceci conformément à la charte du forum ;)
2 – Tous les membres du forum répondent gracieusement aux questions. Il n’y a donc aucune obligation de résultat et de délai. Les mots URGENT, SOS, AU SECOURS sont donc à bannir.
 

camarchepas

XLDnaute Barbatruc
Re : Importer un tableau txt dans excel et transformer les codes articles en EAN13

Bonjour Staple, Laurent ,HHy ,

@ Staple : J'ai horreur de la soupe froide , bon pas de quoi en faire un potage .

@ Laurent , Merci pour la reprise en main du sujet , Lol

@ H.H.Y Et oui , urgence il y avait , mais pas sur le Forum , bon me revoici,

Le VBA est une Chose , la Langue Française une autre , enfin , si le premier coup n'était pas le bon et c'est écrit dans le post , c'est que tu n'as pas précisé où tu attendais ton code barre.

Pour un premier résultat , c'est presque copie conforme .

Bon , pour le Fun , et aprés l'installation du commissariat de Police voici

Allez la cuilliere entre les dents et le bol tous juste sortit du Micro ondes

Code:
Sub lit()
Dim Phrase As String
Dim Ligne As Long
Ligne = 1
Open "C:\Appli_Excel\Test\BLeu\c_barre.txt" For Input As #1    ' Ouvre le fichier en lecture.
Do While Not EOF(1)    ' Effectue la boucle jusqu'à la fin du fichier.
     Line Input #1, Phrase   ' Lit la ligne de données dans une variable.
     If InStr(1, Phrase, ";") > 1 Then
       'Duplique la derniere partie de la chaine
        Phrase = Replace(Phrase, vbTab, "") & ";" & Split(Phrase, ";")(5)
       'Si autre que l'entête alors passe en police EAN13 
        If Split(Phrase, ";")(5) <> "CODE BARRE" Then
        With Range("G" & Ligne).Font
         .Name = "EAN-13"
         .FontStyle = "Normal"
         .Size = 28                     'Taille du code barre , a ajuster ici
         .Strikethrough = False
         .Superscript = False
         .Subscript = False
         .OutlineFont = False
         .Shadow = False
         .Underline = xlUnderlineStyleNone
        End With
        End If
        Range("A" & Ligne & ":G" & Ligne) = Split(Phrase, ";")
      Else
       If InStr(1, Phrase, vbTab) > 0 Then
         Range("A" & Ligne & ":F" & Ligne) = Split(Phrase, vbTab)
        Else
        Range("A" & Ligne) = Phrase
       End If
     End If
     Ligne = Ligne + 1
 Loop
'Fermeture fichier texte
Close #1
End Sub
 

h.b.y

XLDnaute Nouveau
Re : Importer un tableau txt dans excel et transformer les codes articles en EAN13

Bonjour
juste un petit problème, suite à ton programme reçu hier, quand je le lance, il me copie la colonne F dans la colonne G, il ne la transforme pas en EAN13 ça d'une part et d'autre part, il ne tient pas compte des modifications apportées dans le fichier texte c_barre.txt, j'ai essayé de comprendre, mais je me trouve nul devant le VBA.
Merci et quand tu peux
Cordialement
 

camarchepas

XLDnaute Barbatruc
Re : Importer un tableau txt dans excel et transformer les codes articles en EAN13

Re ,
Bon ,
Je remets l'ensemble des fichiers à utiliser ,
Le fichier txt fourni par tes soins ,
Le fichier de la police EAN-13
ainsi que l'implantation du code près à executer dans un fichier xlsm.

Modifier ici si la police ne porte pas le même nom , ou si il faut modifier la taille

.Name = "EAN-13"
.FontStyle = "Normal"
.Size = 28

et ici si le fichier police ne porte pas le même nom :

If Dir("C:\Windows\Fonts\EAN-13.TTF")

voilà voilà , toutes les clef sont dans tes mains .
 

Pièces jointes

  • ean-13.zip
    7.6 KB · Affichages: 88
  • X_BARRE.ZIP
    1.1 KB · Affichages: 60
  • X_BARRE.ZIP
    1.1 KB · Affichages: 57
  • X_BARRE.ZIP
    1.1 KB · Affichages: 54
  • Text_dec1.xlsm
    19.9 KB · Affichages: 80

h.b.y

XLDnaute Nouveau
Re : Importer un tableau txt dans excel et transformer les codes articles en EAN13

Merciiiiiiiiiiiiiiii
Enfin ça marche , le problème était ma police EAN13 qui causait problème, j'ai réinstallé la tienne et ça marche.
C'est Sympa
Cordialement
 

Statistiques des forums

Discussions
311 725
Messages
2 081 939
Membres
101 844
dernier inscrit
pktla