Données VB5 vers Excel

Bonjour,

Je voudrais transférer un tableau de données T(x,y) crées dans Visal Basic 5 ( que je pratique depuis peu ) dans Excel, pouvez vous me donner quelques pistes...

Merci
Configuration: Windows XP
Internet Explorer 6.0

19 réponses

  1. Contributeur
    Bonjour,
    Ca ne me parais pas compliqué, dans VB5 sauver ton tableau dans un fichier temporaire et le rentrer dans excel de la même façon. (en VBA)
    A+
    0
    1. Merci, la réponse me rassure mais ne m'aide pas beaucoup...
      J'ai déjà utilisé un bout de programme qui tranférait des données d'une textbox vers un fichier Txt. ( utilisation de
      Open ... et write ...). Le résultat n'était pas fameux, les données étaient modifiées. En essayant d'adapter ces quelques lignes de code pour Excel, je tranfère bien les données mais dans une seule colonne !
      d'ou ma question ...

      Merci pour des explications plus détaillées
      0
      1. Contributeur
        Quel type de donnée ?
        Si texte la longeur peut-elle être définie ? Si oui, employer un fichier à accès direct (Random)
        Donne des détails et je verrais pour te pondre un début de solution.
        A+
        0
        1. Sympa de me redonner quelques espoirs...

          Je peux définir un cas simple : Je veux transférer d'une textbox VB5 dans Excel, une matrice 2x11, cad 2 colonnes et 11 lignes :
          - Dans la 1ère ligne on "écrit" par exemple case 1 "x" et case 2 : " f(x)
          - dans toutes les autres cases figurent les données soit 20 valeurs décrites par XX, XX.

          A partir d'un bout de code de principe basé sur cet exemple simple , je pourrais ( je suppose) l'étendre à n'importe quel type de matrice

          Merci à l'avance

          A+
          0
          1. Contributeur
            Il y a beaucoups de façon pour transmettre des données de VB à excel, mais comme tu parle de tableau voila un exemple, non tester si problème tu dit.

            DANS VB
            Option Explicit
            Type ERG1
                VarTxt1 As String * 30
                VarTxt2 As String * 30
            End Type
            Dim TB(10) As ERG1
            Dim temp As String
            Dim Chemin As String
            
            
            '2 colonnes de textBox indexées
            'colonne 1 = TxrCol1(0) à...TxrCol1(10)
            'colonne 2 = TxrCol2(0) à...TxrCol2(10)
            '1Bouton sauver
            Private Sub Sauver_Click()
            Dim Fich As Integer, i As Integer
                Chemin = App.Path 'noter le répertoir
                temp = Chemin & "\Temporaire.FFF"
                Fich = FreeFile
                Open temp For Random As #Fich Len = Len(ERG1)
                For i = 0 To 10
                    Put #Fich, i + 1, TB(i)
                Next i
                Close
            End Sub
            
            Private Sub TxrCol1_Change(Index As Integer)
                TB(Index).VarTxt1 = TxrCol1(Index).Text
            End Sub
            
            Private Sub TxrCol2_Change(Index As Integer)
                TB(Index).VarTxt2 = TxrCol2(Index).Text
            End Sub


            DANS EXCEL
            Option Explicit
            Type ERG1
                VarTxt1 As String * 30
                VarTxt2 As String * 30
            End Type
            Dim TB(10) As ERG1
            Dim temp As String
            Dim Chemin As String
            
            'Met les données dans Feuil1 et de A1 à B11
            Sub ColleTB()
            Dim Fich As Integer, i As Integer
                Chemin = Application.Path 'même répertoir
                temp = Chemin & "\Temporaire.FFF"
                Sheets("Feuil1").Select
                Fich = FreeFile
                Open temp For Random As #Fich Len = Len(ERG1)
                For i = 0 To 10
                    Get #Fich, i + 1, TB(i)
                    Cells(i + 1, 1) = Trim(TB(i).VarTxt1)
                    Cells(i + 1, 2) = Trim(TB(i).VarTxt2)
                Next i
                Close
            End Sub

            A+
            0
            1. - Merci de ton aide. Je pianote avec VB5 depuis 2 semaines et j'ai réussi à faire du calcul, présenter les résultats sous forme de courbes et tableaux de chiffres mais dans le cas présent mes connaissances sont nettement insuffisantes !

              - J'ai crée un projet VB5 avec ton code + un petit module créeant mon tableau de chiffres et déclaré TxrCol1 et 2. Par ailleurs j'ai crée dans Excel / VBA la macro avec ton code ( et "private type ERG1" ).
              -Question 1 : concernant le chemin j'ai laissé ton instruction telle que : VB5 dit que "Dans le cas de l'objet App, elle représente le chemin du fichier .vbp du projetet je souhaite le mettre dans le répertoire courant. Est-ce correct ? sinon quelle est la syntaxe ...
              - Maintenant après avoir appuyé sur le bouton "sauver", ça bloque à l'ouverture du fichier "temp" : ERG1 ne serait pas déclarée ??

              code actuel crée dans VB5 :

              Option Explicit
              Private Type ERG1
              VarTxt1 As String * 30
              VarTxt2 As String * 30
              End Type

              Dim TB(10) As ERG1
              Dim temp As String
              Dim Chemin As String

              '2 colonnes de textBox indexées
              'colonne 1 = TxrCol1(0) à...TxrCol1(10)
              'colonne 2 = TxrCol2(0) à...C(10)
              '1Bouton sauver
              Private Sub Sauver_Click()

              Dim Fich As Integer, i As Integer
              Chemin = App.Path 'noter le répertoir
              temp = Chemin & "\Temporaire.FFF"
              Fich = FreeFile
              Open temp For Random As #Fich Len = Len(ERG1)
              For i = 0 To 10
              Put #Fich, i + 1, TB(i)
              Next i
              End Sub

              Private Sub TxrCol1_Change(Index As Integer)
              TB(Index).VarTxt1 = TxrCol1(Index).Text
              End Sub

              Private Sub TxrCol2_Change(Index As Integer)
              TB(Index).VarTxt2 = TxrCol2(Index).Text
              End Sub

              Private Sub form_Load()

              Dim Y(20), TxrCol1(12), TxrCol2(12), A$, i
              A$ = Chr$(13) + Chr$(10)

              For i = 0 To 10
              Y(i) = i * 5 ' valeurs de la fonction à stocker dans Excel avec les abcisses x
              Next i

              For i = 0 To 10

              TxrCol1(i) = i
              TxrCol2(i) = Y(i)
              tableau1 = tableau1.Text & "..." & A$ ' affichage du tableau dans la textbox
              tableau1 = tableau1.Text & " I = " & Format(i, "00") & " Y = " & Format(Y(i), "00.0") & A$
              Next i

              End Sub

              A+
              0
          2. Contributeur
            Vu trop tard, faut mettre...
            Private Type ERG1

            A+
            0
            1. Contributeur
              Dans excel, tout le code doit être dans le module de Feuil1
              Pour le chemin, ce n'est pas recommander de mettre ton fichier dans le réperyoir "courant" ça change tout le temps.
              Mais tu peu le mettre dans un répertoir précis
                  Chemin = "C:\nom Répertoir\ nom sous répertoir"

              et mettre les deux même lignes dans VB et excel.
              et j'ai fait une erreur dans l'ouverture fichier,rectifier par..
                  Open temp For Random As #Fich Len = Len(TB(0))

              Maintenant j'ai tester et ça fonctionne.
              A+
              0
              1. Bonjour,

                On en est pas loin mais en faisant tourner le code ci-après ça coince toujours à la ligne "Open ..." malgré la modif.
                J'ai modifié le code VBA et crée un fichier Excel 'Temporaire.xls" dans mon répertoire à l'adresse indiquée...
                Désolé de te relancer mais je ne vois pas pourquoi ça ne marche pas chez moi...

                Merci encore

                Option Explicit
                Private Type ERG1
                VarTxt1 As String * 30
                VarTxt2 As String * 30
                End Type
                Dim TB(10) As ERG1
                Dim temp As String
                Dim Chemin As String

                '2 colonnes de textBox indexées
                'colonne 1 = TxrCol1(0) à...TxrCol1(10)
                'colonne 2 = TxrCol2(0) à...C(10)
                '1Bouton sauver
                ' ............................................................................

                Private Sub Sauver_Click()

                Dim Fich As Integer, i As Integer
                'Chemin = App.Path 'noter le répertoir
                'Chemin = "C:\nom Répertoir\ nom sous répertoir"
                Chemin = " H:\Mes documents\VB5-isolation\outils de base\tableau Excel "

                temp = Chemin & "\Temporaire.FFF"
                Fich = FreeFile
                Open temp For Random As #Fich Len = Len(TB(0))
                'Open temp For Random As #Fich Len = Len(ERG1)
                For i = 0 To 10
                Put #Fich, i + 1, TB(i)
                Next i
                End Sub

                Private Sub TxrCol1_Change(Index As Integer)
                TB(Index).VarTxt1 = TxrCol1(Index).Text
                End Sub

                Private Sub TxrCol2_Change(Index As Integer)
                TB(Index).VarTxt2 = TxrCol2(Index).Text
                End Sub

                Private Sub form_Load()
                Dim Y(20), TxrCol1(12), TxrCol2(12), A$, i
                A$ = Chr$(13) + Chr$(10)
                For i = 0 To 10
                Y(i) = i * 5
                Next i

                For i = 0 To 10

                TxrCol1(i) = i
                TxrCol2(i) = Y(i)
                tableau1 = tableau1.Text & "..." & A$
                tableau1 = tableau1.Text & " I = " & Format(i, "00") & " Y = " & Format(Y(i), "00.0") & A$
                Next i

                End Sub
                0
                1. Contributeur
                  A force de modifier tu n'a plus rien de convenable, tu à bien tes 11 textBox avec index de 0 à 10 pour TxrCol1 et idem pour TxrCol2 ?
                  Reprend le code exact dans mon poste précédant, tu ne change que la ligne Chemin et Private pour Type.
                  RIEN D'AUTRE

                  Et le libellé du chemin doit être précis, déja que tu met un espace devant le H.. Grrrr
                  Pour être sûr que tu écrit le bon chemin tu ouvre l'exmplorateur de fichier, tu va dans le répertoir concerné, dans la ligne du haut tu copie le chemin et tu le colle entre guillemets sur Chemin = "...COLLER"
                  Et Mes documents dans H: ??? en principe il n'y à pas de répertoir direct pour mes documents
                  Pour le test met..
                  Chemin = "C:" dans VB et excel

                  0
                  1. Bonsoir,

                    - Je progresse ( lentement ) : J'ai repris ton code de départ ( VB5 et VExcel ), fait les modif dans les 2 codes ( Private...,Open...) et crée dans C: un répertoire VB5 ( soit : Chemin = "C:\VB5" ).

                    - Dans Excel j'ai crée Temporaire.xls et copié le code dans "Projet VBA feuille1 Excel modifié" d'ou une macro "feuil.ColleTB"

                    -Je lance la panip : le code VB5 passe bien et il me crée un fichier C:\VB5\ Temporaire.FFF. Maintenant si j'ouvre le fichier Excel "Temporaire.xls et que je lance la macro, rien ne se passe. Le débogger s'arrete à "sub colleTB() ?

                    - En fait comme je ne comprend pas la logique des évènements, je suis vite bloqué : Je m'attendais au départ à ce que VB5 me crée directement un fichier .xls avec les données dans les 2 colonnes. Quand j'ai vu ton code "dans Excel " je me suis dit que VB5 créeait un fichier temporaire.FFF qui lui était transformé par la macro en fichier.xls...

                    Si tu as la patience de me dire au moins quelle est la bonne logique ce serait bien et s'il te reste du temps ,tu me dis quoi faire pour réussir à placer ces 2 colonnes de chiffres dans un .xls...

                    nota : j'ai même un doute de plus, Je génère dans la petite procédure " Private sub form Load" les 11 x 2 nombres et dans cette même procédure je fais TxrCol1(i) = i et TxrCol2(i) = Y(i) , ça au moins c'est bien correct ?

                    Enfin si tu arrives à me sortir de cette galère, tu me diras STP quel tutos pourrait m'ouvrir un peu l'esprit sur le sujet car j'ai compris qu'il y avait en plus plusieurs manières d'arriver à transférer des données de VB5 à Excel...

                    A+
                    0
                    1. Contributeur
                      Tu ne répond pas sur.. Tu à bien créer 22 TextBox. (comme demandé)
                      le principe,
                      Dans VB5 créer un fichier qui n'a rien à voir avec excel et le sauver
                      Dans excel faire une macro qui lit ce fichiere et le transfert dans des cellules.

                      1°) Vérifier dans le répertoir C:\VB5 qu'il y à bien le fichier Temporaire.FFF
                      2°) Voir s'il à bien +- 1K
                      3°) ouvrir un nouveau classeur excel ET NE RIEN RENOMMER

                      4°) Taper Alt+F11 pour entrer dans l'éditeur VBA
                      5°) Ouvrir un module >> Insertion >> Module
                      6°) Dans cette nouvelle fenêtre (Module1) coller EXACTEMENT le code ci-dessous (rien changer)
                      Type ERG1
                          VarTxt1 As String * 30
                          VarTxt2 As String * 30
                      End Type
                      Dim TB(10) As ERG1
                      Dim temp As String
                      Dim Chemin As String
                      
                      
                      Sub ColleTB()
                      Dim Fich As Integer, i As Integer
                          Chemin = "C:\VB5"
                          temp = Chemin & "\Temporaire.FFF"
                          Sheets("Feuil1").Select
                          Fich = FreeFile
                          Open temp For Random As #Fich Len = Len(TB(0))
                          For i = 0 To 10
                              Get #Fich, i + 1, TB(i)
                              Cells(i + 1, 1) = TB(i).VarTxt1
                              Cells(i + 1, 2) = TB(i).VarTxt2
                          Next i
                      
                      End Sub

                      7°) Mettre le cureseur sur le C de Chemin... Taper F5
                      Si tout se passe bien le contenu du fichier devrait se trouver sur la Feuil1 du classeur, dans les cellules de A1 à B11

                      Il y a effectivement moyen de copier directement les données dans un classeur excel mais c'est un peu plus compliqué, maitrise déja un peu VB5 et le VBA d'excel qui se ressemble beaucoups et ont en reparleras.
                      Notamment les fichiers, surtout pour le VB5
                      Je n'avai pas donner tout ces détails je pensai que tu avais quelque connaissances !
                      Pourquoi faire un programme en VB5 alors que tu peu directement le faire dans excel ?
                      0
                      1. RE bonsoir,

                        Je vais suivre à la lettre tes instructions ce soir (ou cette nuit !)...

                        - J'utilise VB5 ( depuis peu) car pour sésoudre des petits Pbs (équa diff de la chaleur en éléments finis) et présenter les résultats graphiques et tabeaux l'IHM est pratique.

                        - Un point important : j'ai cru que tu plaisantais en disant de créer 22 textbox, moi j'en ai crée 1 dans laquelle mes résultats apparaissent ( voir la petite procédure déjà envoyée ) ... Si j'ai une fonction avec n valeurs n étant très grand cela veut dire que je dois créer "2n" textbox ??? ça devient moins intéressant ? ton avis STP ...

                        A+
                        0
                        1. Contributeur
                          Mon avis !! Quand j'essaye d'aider je rigole pas !!!
                          créer des Textbox c'était pour la démo, mais avec la ligne et demi de renseignement que tu donne au départ c'est difficile de savoir comment faire.
                          Si tu sais combien de données dans ton tableau tu peu modifier le for dans excel.

                          Et pour ta 2ém réponse, ce serrait mieux de faire tout dans excel, de plus les graph d'excel sont beaucoups plus performant que ceux de VB
                          0
                          1. RE RE Bonsoir,

                            - Tu es un peu dur : " mais avec la ligne et demi de renseignement que tu donne " ce n'est pas volontaire: mon exemple de tableau à 2 colonnes donnant 2x 10 valeurs devait pour moi permettre d'étendre à "2 x n" valeurs plus tard. Désolé, je croyais avoir donné l'info suffisante...

                            - J'ai , je crois , bien saisi ton explication de la méthode utiliseé par Excel pour récupérer l'info de "Temporaire.FFF". J'ai suivi tes conseils ( la 2ième ligne reste " Type ERG1" et non " Private Type ERG1" comme dans VB5 ). Je crée bien ce fichier de 1Ko en lançant VB5.
                            Quand je vais dans le module 1 de VBA ,si je lance par curseur sur "C"hemin + F5 rien ne se passe , alors que si je passe par "éxécuter", j'obtiens une fenêtre "macro : colleTB " > puis je fais éxécuter ( la macro). Rien ne se passe dans la feuille1 de " classeur1.xls " , mais pas de bug ( c'est déjà quelquechose ).

                            - En fait je me demande plûtot maintenant si il y a vraiment des données dans le fichier Temporaire.FFF ...Pour tout dire j'ai bien crée 22 textbox mais je ne comprend pas pourquoi : dans ma petite tête quand je greffe sur ton code une petite procédure avec la boucle pour créer les 22 chiffres + TxrCol1(i) = i et TxrCol2(i) = Y(i) je me dis que j'ai bien fourni les valeurs à TxrCol1 & 2 et je peux vérifier dans ma textbox qu'elles ont bien été génèrée ( instruction tableau1 = tableau1.Text & ... Format(i, "00") &...etc. ). Alors à quoi servent les 21 autres box et quel code leur fournir ?? J'ai essayé différentes manip sans succès !

                            Je comprendrais parfaitement que tu "décroches" mais si tu peux encore m'aider je suis preneur, ça me gonfle vraiment de ne pas y arriver !

                            de toute façon merci

                            A+ ( si tu le souhaites )
                            0
                            1. Contributeur
                              Si rien ne se passe sur excel c'est que tout va bien, mais ça va tellement vite que tu vois rien et si effectivement ton fichier est vide y à rien qui s'inscrit.
                              Revenons donc à VB5, laisse tomber les textbox et colle ce code
                              Option Explicit
                              Private Type ERG1
                                  VarTxt1 As String * 30
                                  VarTxt2 As String * 30
                              End Type
                              Dim TB(10) As ERG1
                              Dim temp As String
                              Dim Chemin As String
                              
                              '1Bouton sauver
                              Private Sub Sauver_Click()
                              Dim Fich As Integer, i As Integer
                                  Chemin = "C:\VB5"
                                  temp = Chemin & "\Temporaire.FFF"
                                  Fich = FreeFile
                                  Open temp For Random As #Fich Len = Len(TB(0))
                                  For i = 0 To 10
                                      Put #Fich, i + 1, TB(i)
                                  Next i
                              End Sub
                              
                              Private Sub Form_Load()
                              Dim i As Integer
                              For i = 0 To 10
                                  TB(i).VarTxt1 = "Tabl1," & i
                                  TB(i).VarTxt2 = "Tabl2," & i
                              Next i
                              End Sub


                              Pour suivre l'évolution tu peu mettre un point d'arrèt par exemple sur la ligne Chemin = ..
                              mettre un point d'arrèt : soit mettre le curseur sur la ligne et taper F9, soit cliquer sur la partie gauche du cadre de la fenêtre
                              Un point d'arrèt se matérialise par la ligne en surbrillance Brun.
                              pour passer d'instruction en instruction taper F8
                              Pour connaitre ce qu'il y a dans une variable promenner le curseur dessus, une bulle s'inscrit avec sont contenu.(ne va pas toujours)
                              autre façon pour connaître le contenu, dans la fenêtre Exécution, par exemple pour connaître ce qu'il y a dans Chemin taper Print Chemin et valider par Enter.
                              Tu dit...
                              0
                              1. Bonjour,

                                - Alors là c'est le pied....ça marche et j'ai presque tout compris. Tu dis, avec Gide : "L'expérience instruit plus sûrement que le conseil" d'accord, mais sans ton conseil et ton expérience, je n'aurais (avec ma très modeste expérience) pas réussi du tout..

                                - J'ai adapté ton code à mon cas : 3 colonnes, une entête au début de chaque colonne ( X, Y(i) , Z(i) ) et dans chaque colonne les valeurs des paramètres. Je pense pouvoir plus tard paramètrer le nombre de valeurs ( i = n ) pour avoir un petit outil dans lequel on ne rentre q'un chiffre pour effectuer un transfert.
                                Donc ça roule , les valeurs sont bien transfèrées, mais juste un détail , seule une entête de colonne apparait ( x) mais les 2 autres niet.Cependant en cliquant sur les cases B1 et C1, je retrouve le texte voulu... un mystère d'Excel ?

                                - Encore une fois un grand merci pour ta patience et tes connaissances. Si tu peux me conseiller quelques lectures sur le sujet ( il y en a tellement ) ce sera le dernier conseil demandé...

                                nota : Je me suis cogné la tête ce matin, il me semble que ça sonnait un peu moins creux sans toutefois savoir si le problème est de mon coté ou du mur...

                                Disciple de Confucius, je te salue

                                Dernière version, dans VBA / Excel :

                                Type ERG1
                                VarTxt1 As String * 30
                                VarTxt2 As String * 30
                                VarTxt3 As String * 30
                                End Type
                                Dim TB(12) As ERG1
                                Dim temp As String
                                Dim Chemin As String

                                Sub ColleTB()
                                Dim Fich As Integer, i As Integer
                                Chemin = "C:\VB5"
                                temp = Chemin & "\Temporaire.FFF"
                                Sheets("Feuil1").Select
                                Fich = FreeFile
                                Open temp For Random As #Fich Len = Len(TB(0))

                                Get #Fich, 1, TB(0)
                                Cells(1, 1) = TB(0).VarTxt1
                                Cells(1, 2) = TB(0).VarTxt2
                                Cells(1, 3) = TB(0).VarTxt3

                                For i = 1 To 10
                                Get #Fich, i + 1, TB(i)
                                Cells(i + 1, 1) = TB(i).VarTxt1
                                Cells(i + 1, 2) = TB(i).VarTxt2
                                Cells(i + 1, 3) = TB(i).VarTxt3
                                Next i

                                End Sub

                                Dans VB5 :

                                Option Explicit
                                Private Type ERG1
                                VarTxt1 As String * 30
                                VarTxt2 As String * 30
                                VarTxt3 As String * 30

                                End Type
                                Dim TB(11) As ERG1
                                Dim temp As String
                                Dim Chemin As String

                                '1Bouton sauver
                                Private Sub Sauver_Click()
                                Dim Fich As Integer, i As Integer
                                Chemin = "C:\VB5"
                                temp = Chemin & "\Temporaire.FFF"
                                Fich = FreeFile
                                Open temp For Random As #Fich Len = Len(TB(0))
                                For i = 0 To 11
                                Put #Fich, i + 1, TB(i)
                                Next i
                                End Sub

                                Private Sub Form_Load()
                                Dim i As Integer
                                Dim Y(20) As Integer
                                Dim Z(20) As Integer
                                Dim A$
                                A$ = Chr$(13) + Chr$(10)

                                TB(0).VarTxt1 = "X"
                                TB(0).VarTxt2 = "Y(i)"
                                TB(0).VarTxt3 = "Z(i)"

                                For i = 1 To 11
                                Y(i) = 10 + i
                                Z(i) = 20 + i

                                TB(i).VarTxt1 = i
                                TB(i).VarTxt2 = Y(i)
                                TB(i).VarTxt3 = Z(i)
                                Next i

                                For i = 1 To 11
                                tableau = tableau.Text & " " & A$
                                tableau = tableau.Text & " " & A$
                                tableau = tableau.Text & " I = " & Format(i, "0") & " " & " Y = " & Format(Y(i), "00.0") & " " & " Z = " & Format(Z(i), "00.0") & A$

                                Next i

                                End Sub
                                0
                                1. Contributeur
                                  Aller.. Dernière petite aide,
                                  Dans VB5
                                  For i = 1 To Ubound(TB) 'Va jusqu'a la fin du tableau.

                                  et..
                                  Dans excel
                                  For i = 1 To Lof(Fich)/Len(TB(0)) 'Va jusqu'au bout du fichier

                                  Tu revient quand tu veux,
                                  A+
                                  0
                                  1. Contributeur
                                    Mais encore...
                                    Remplacer..
                                    Get #Fich, 1, TB(0) 
                                    Cells(1, 1) = TB(0).VarTxt1 
                                    Cells(1, 2) = TB(0).VarTxt2 
                                    Cells(1, 3) = TB(0).VarTxt3 
                                    
                                    For i = 1 To 10 
                                    Get #Fich, i + 1, TB(i) 
                                    Cells(i + 1, 1) = TB(i).VarTxt1 
                                    Cells(i + 1, 2) = TB(i).VarTxt2 
                                    Cells(i + 1, 3) = TB(i).VarTxt3 
                                    Next i 

                                    par tout simplement...
                                        For i = 0 To Lof(Fich)/Len(TB(0)) -1
                                            Get #Fich, i + 1, TB(i)
                                            Cells(i + 1, 1) = TB(i).VarTxt1
                                            Cells(i + 1, 2) = TB(i).VarTxt2
                                            Cells(i + 1, 3) = TB(i).VarTxt3 
                                        Next i

                                    et tes entêtes de colonnes serront présente.
                                    A++
                                    0
                                    1. Alors là, je t'arrête. Non ce n'est plus possible, c'est trop la classe, j'ai maintenant un outil super que beaucoup vont m'envier ! A terme Je vais le décortiquer pour en bien comprendre le détail...

                                      Merci encore et passes de bonnes fêtes

                                      A+ Bernard ( mais celle-la, on a dû te la faire souvent, si c'est le cas tu changes avec Thiérry )
                                      0