Définition de commande macro

Résolu
Bonjour,

A partir d'un fichier csv je dois modifier les cellules d'une colonne pour la passer a 10 caractères

Pour cela j'ai écris une macro
Qui modifie les cellules de la colonne pas de problèmes jusque là ça fonctionne.
Puis qui sauvegarde mon document en gardant le format csv avec comme séparateur de champs le point virgule,je dois fermer l'appli excel et la j'ai la question suivante :

========================================================================
Fichier.csv peut contenir des informations non compatibles avec CSV (séparateur : point virgule).Voulez-vous conserver le format du classeur ?

*Cliquez sur Oui pour conserver le format.Les fonctionnalités non compatibles seront perdues.
*Cliquez sur Non pour conserver ces caractéristiques.Enregistrez ensuite une copie de votre document dans le format de fichier Excel le plus récent.
*Cliquez sur Aide pour vérifier les pertes possibles.

Oui Non Aide
========================================================================

Comment paramétrer ma macro pour que celle-ci réponde oui implicitement a cette question.

Merci de votre aide.
Configuration: Excel 2003 SP3

30 réponses

Résumé de la discussion

Une macro Excel ajuste la colonne C pour qu'elle fasse exactement 10 caractères et enregistre le fichier en CSV avec le séparateur ';', tout en gérant automatiquement les boîtes de dialogue liées à l'enregistrement. La solution proposée consiste à activer la référence Microsoft Scripting Runtime dans VBA puis d’utiliser un module qui exporte vers CSV avec FileSystemObject et Print # pour écrire les lignes en utilisant ';' comme séparateur. Par ailleurs, la solution recommande de supprimer les invites en utilisant Application.DisplayAlerts et de sauvegarder directement en CSV, afin d’éviter les questions Oui/Non lors de l’enregistrement. D’autres échanges précisent qu’il faut préserver le séparateur ';' lorsque le fichier est ouvert dans des éditeurs comme WordPad, afin d’obtenir une visualisation cohérente du fichier.

Bobot (l’IA à votre service)
  1. Modérateur
    Bonjour,

    Il faut que tu ajoutes, avant le SaveAs

    Application.DisplayAlerts = False

    et après
    Application.DisplayAlerts = True


    m@rina

    1. Bonjour m@rina et merci pour ton aide

      Ca ne marche pas j aimerai te présenter ma macro pour que ça soit plus parlant pour toi cela ne te pose pas de problème ?
      Je te mettrai l'exemple du fichier et comment je dois le lire ensuite .

      Merci encore.
      1. A l’origine dans la colonne C le chiffre n’est pas sur 10 positions je dois donc mettre à jour toutes mes cellules qui ne sont pas sur 10 chiffres en ajoutant des zéros.

        Donc dans l’exemple du fichier ci-dessous le 234 doit devenir 0000000234 le 4567 en 0000004567 et le 90898 en 0000090898 et ca pour toutes les lignes de mon fichier excel de la colonne C.

        A B C B E F G H I J
        100 64327 234 457 5678 90432 4521 567 7842 3589
        100 64327 4567 457 5678 90432 4521 567 7842 3589
        100 64327 90898 457 5678 90432 4521 567 7842 3589

        Le résultat que je dois avoir après le passage de ma macro

        A B C B E F G H I J
        100 64327 0000000234 457 5678 90432 4521 567 7842 3589
        100 64327 0000004567 457 5678 90432 4521 567 7842 3589
        100 64327 0000090898 457 5678 90432 4521 567 7842 3589

        Le fichier et au format csv avec comme séparateur de champ le point virgule

        Une fois modifiée par la macro je dois ouvrir celui-ci à partir de worpad et je dois retrouver le résultat suivant :

        100;64327;0000000234;457;5678;90432;4521;567;7842;3589
        100;64327;0000004567;457;5678;90432;4521;567;7842;3589
        100;64327;0000090898;457;5678;90432;4521;567;7842;3589

        Le problème que je rencontre c’est au moment de l’enregistrement il me pose divers questions :

        1er question :
        Voulez-vous enregistrer les modifications apportées à ‘monfichier.csv’ ?
        Oui Non Annuler
        Je clic sur Oui

        2eme question :
        La boîte de dialogue suivante s’ouvre Enregistrer sous
        Elle me demande le Nom du fichier ?
        Je clic sur enregistrer je ne change pas de nom

        3eme Question :
        La boîte de dialogue suivante s’ouvre :
        ============================================================¬============
        Fichier.csv peut contenir des informations non compatibles avec CSV (séparateur : point virgule).Voulez-vous conserver le format du classeur ?

        *Cliquez sur Oui pour conserver le format.Les fonctionnalités non compatibles seront perdues.
        *Cliquez sur Non pour conserver ces caractéristiques.Enregistrez ensuite une copie de votre document dans le format de fichier Excel le plus récent.
        *Cliquez sur Aide pour vérifier les pertes possibles.

        Oui Non Aide
        ============================================================¬============

        Je clic sur Oui

        Fin de la procédure si j’ouvre maintenant le fichier à partir de Worpad j’ai bien mon fichier avec le format souhaité

        100;64327;0000000234;457;5678;90432;4521;567;7842;3589
        100;64327;0000004567;457;5678;90432;4521;567;7842;3589
        100;64327;0000090898;457;5678;90432;4521;567;7842;3589
        1. m@rina as-tu une idée sur comment faire cette macro faut-il d'autre info sur le fichier excel
          1. Modérateur
            Ta réponse n'apporte rien de plus.
            Il faut que tu mettres à notre disposition un extrait du fichier, avec la macro.

            m@rina
            1. Bonjour m@rina,

              Je ne comprend pas quand tu me dis <<Ta réponse n'apporte rien de plus>> j'ai mis dans mon message l'image de mon fichier excel si tu regardes je t'ai nommé les colonnes A B C B E F G H I J et chaques lignes par exemple si on prend la 1ere ligne elle correspond à ça:

              La ligne 1 avec la description des colonnes :

              Colonne A = 100
              Colonne B = 64327
              Colonne C = 234
              Colonne D = 457
              Colonne E = 5678
              Colonne F = 90432
              Colonne G = 4521
              Colonne H = 567
              Colonne I = 7842
              Colonne J = 3589

              La ligne 2 avec la description des colonnes :

              Colonne A = 100
              Colonne B = 64327
              Colonne C = 4567
              Colonne D = 457
              Colonne E = 5678
              Colonne F = 90432
              Colonne G = 4521
              Colonne H = 567
              Colonne I = 7842
              Colonne J = 3589

              Idem pour la ligne 3 .

              Voila pour le fichier Excel je penses qu'avec ces précisions on peut reconstituer le même fichier sous excel non?

              Pour la macro je peut faire un copier coller de celle-ci

              Sub Mise_en_forme_d_une_cellule_a_dix_caracteres()
              '
              ' Mise_en_forme_d_une_cellule_a_dix_caracteres Macro
              ' Macro enregistrée le 28/05/2009 par
              '

              '
              Columns("C:C").Select
              Selection.NumberFormat = "0000000000"

              Application.DisplayAlerts = False

              ActiveWorkbook.SaveAs Filename:="C:\Rep_fic_transf\miseenformedixcaract.csv", FileFormat _
              :=xlCSV, CreateBackup:=False

              Application.DisplayAlerts = True

              End Sub

              Je ne sais pas ce que tu en penses de ces infos mais si cela ne suffit pas je te joindrai le fichier et la macro avec le lien que tu ma fournis (http://cjoint.com)

              Merci encore pour l'aide
              1. Rajoutes la partie en gras, certaines verifications ne seront pas prises en compte...

                Application.DisplayAlerts = False

                ActiveWorkbook.Saved = True

                ActiveWorkbook.SaveAs Filename:="C:\Rep_fic_transf\miseenformedixcaract.csv", FileFormat _
                :=xlCSV, CreateBackup:=False

                Application.DisplayAlerts = True
                1. Merci je l'ai fait mais quand j'ouvre mon fichier avec worpad le séparateur de champ n'est pas le point virgule mais la virgule.
                  Il me faut impérativement le point virgule comme séparateur de champ alors comment faire?

                  le résultat après avoir suivi tes conseilles :

                  100,64327,0000000234,457,5678,90432,4521,567,7842,3589
                  100,64327,0000004567,457,5678,90432,4521,567,7842,3589
                  100,64327,0000090898,457,5678,90432,4521,567,7842,3589

                  A savoir aussi lorsque je ferme le fichier j'ai toujours les mêmes questions
                  1/Voulez-vous enregistrer les modifications .......
                  je répond manuellement en cliquant sur le OUI

                  2/miseenformedixcaract.csv peut contenir des informations non compatibles avec CSV (séparateur : point virgule).Voulez-vous conserver le format du classeur ?

                  *Cliquez sur Oui pour conserver le format.Les fonctionnalités non compatibles seront perdues.
                  *Cliquez sur Non pour conserver ces caractéristiques.Enregistrez ensuite une copie de votre document dans le format de fichier Excel le plus récent.
                  *Cliquez sur Aide pour vérifier les pertes possibles.

                  Oui Non Aide

                  je répond manuellement en cliquant sur le OUI

                  Le résultat après avoir répondu manuellement est correct j'ai bien les ; comme séparateur de champ quand j'ouvre le fichier avec worpad

                  Comment faire pour valider les deux OUI automatiquement par la macro?

                  Merci
                  1. il te reste la solution d'écrire tout ton fichier toi meme en csv sans passer par excel..
                    Je pense qu'en faisant cela, tout tes problèmes seront réglés...
                    1. Je ne comprend pas bien ta solution, tu peu être un peut plus précis.merci
                      1. en fait, tu pourrais tres bien ecrire toi meme dans un fichier au format csv...
                        ce n'est qu'un fichier texte avec un separateur
                        1. Non ce n'est pas possible le fichier d'origine (excel) et un fichier qui met transmis d'une société extérieure il m'est impossible d'obliger celle-ci à écrire dans un fichier csv , je suis d'accord avec toi la meilleure solution c'est bien la tienne mais j'ai d'énorme contrainte.

                          Donc le pb reste entier comment faire à partir d'excel???
                          1. ce que je veux dire c'est qu'avec excel, en VBA tu fais ça et du coup, leur fichier Excel sera converti en csv par toi meme sans passer par enregistrer sous de excel...

                            soit tu me met le cfichier en ligne, soit tu me dis le nom des colonnes que tu veux mettre dans ton fichier..
                            je te donnerai le code à écrire en fonction...
                            1. Ok les colonnes sont les suivantes:

                              Pour la ligne 1:

                              Colonne A = 100
                              Colonne B = 64327
                              Colonne C = 234
                              Colonne D = 457
                              Colonne E = 5678
                              Colonne F = 90432
                              Colonne G = 4521
                              Colonne H = 567
                              Colonne I = 7842
                              Colonne J = 3589

                              Pour la ligne 2:

                              Colonne A = 100
                              Colonne B = 645566
                              Colonne C = 4567
                              Colonne D = 9877
                              Colonne E = 56
                              Colonne F = 906
                              Colonne G = 4521555
                              Colonne H = 567098
                              Colonne I = 78432
                              Colonne J = 358

                              Pour la ligne 3:

                              Colonne A = 100
                              Colonne B = 9887867
                              Colonne C = 8
                              Colonne D = 90909
                              Colonne E = 4234
                              Colonne F = 7876896
                              Colonne G = 6
                              Colonne H = 34432
                              Colonne I = 90898000
                              Colonne J = 1

                              Voila j'espère que tu auras assez d'info avec ça sinon fait moi signe MERCI
                              1. Non c'est un échantillon il peut y avoir 20 lignes comme 2000 .
                                Les colonnes sont toujours les mêmes pas plus pas moins et les cellules sont alimentées qu'avec des chiffres.
                                1. Pas de panique je n'aurai jamais insisté autant pour 3 lignes

                                  Merci A+
                                  1. ll faut juste cocher "microsoft scripting runtime" dans le menu outils / références dans VBA

                                    ensuite dans un module tu colles tout ce qui est en gras

                                    Option Explicit

                                    Dim Fso As FileSystemObject

                                    'DETAIL DE L'ADRESS
                                    Type Export_csv
                                    Colonne_A As String
                                    Colonne_B As String
                                    Colonne_C As String
                                    Colonne_D As String
                                    Colonne_E As String
                                    Colonne_F As String
                                    Colonne_G As String
                                    Colonne_H As String
                                    Colonne_I As String
                                    Colonne_J As String
                                    End Type

                                    'DETAIL DU FICHIER
                                    Public Detail_Export_csv As Export_csv

                                    'EMPLACEMENT DU FICHIER A CREER
                                    Public Emplacement_Fichier As String

                                    Private Function Ecriture_Entete() As Boolean

                                    Set Fso = New FileSystemObject

                                    Emplacement_Fichier = "C:\Export.csv"

                                    On Error Resume Next
                                    If Fso.FileExists(Emplacement_Fichier) = True Then
                                    Fso.DeleteFile Emplacement_Fichier, True
                                    End If
                                    On Error GoTo 0

                                    Set Fso = Nothing

                                    On Error Resume Next
                                    Open Emplacement_Fichier For Output As #1
                                    Select Case Err.Number
                                    Case Is = 0
                                    Ecriture_Entete = True
                                    Case 71
                                    MsgBox "Le support n'est pas accessible.", vbExclamation, "Message"
                                    Ecriture_Entete = False
                                    Case Else
                                    MsgBox Err.Description, vbExclamation, "Message"
                                    Ecriture_Entete = False
                                    End Select
                                    On Error GoTo 0

                                    End Function

                                    Private Function Ecriture_Detail(Colonne_A As String, Colonne_B As String, Colonne_C As String, Colonne_D As String, Colonne_E As String, Colonne_F As String, Colonne_G As String, Colonne_H As String, Colonne_I As String, Colonne_J As String) As Boolean

                                    Ecriture_Detail = False

                                    Detail_Export_csv.Colonne_A = Colonne_A
                                    Detail_Export_csv.Colonne_B = Colonne_B
                                    Detail_Export_csv.Colonne_C = Colonne_C
                                    Detail_Export_csv.Colonne_D = Colonne_D
                                    Detail_Export_csv.Colonne_E = Colonne_E
                                    Detail_Export_csv.Colonne_F = Colonne_F
                                    Detail_Export_csv.Colonne_G = Colonne_G
                                    Detail_Export_csv.Colonne_H = Colonne_H
                                    Detail_Export_csv.Colonne_I = Colonne_I
                                    Detail_Export_csv.Colonne_J = Colonne_J

                                    On Error Resume Next
                                    Print #1, Detail_Export_csv.Colonne_A & ";" & Detail_Export_csv.Colonne_B & ";" & Detail_Export_csv.Colonne_C & ";" & Detail_Export_csv.Colonne_D & ";" & Detail_Export_csv.Colonne_E & ";" & Detail_Export_csv.Colonne_F & ";" & Detail_Export_csv.Colonne_H & ";" & Detail_Export_csv.Colonne_I & ";" & Detail_Export_csv.Colonne_J
                                    If Err.Number = 0 Then
                                    Ecriture_Detail = True
                                    Else
                                    Ecriture_Detail = False
                                    End If
                                    On Error GoTo 0

                                    End Function

                                    Private Sub Ecriture_Fin()

                                    Close #1

                                    End Sub

                                    Public Sub Export()

                                    Call Ecriture_Entete

                                    Dim Colonne_A As String
                                    Dim Colonne_B As String
                                    Dim Colonne_C As String
                                    Dim Colonne_D As String
                                    Dim Colonne_E As String
                                    Dim Colonne_F As String
                                    Dim Colonne_G As String
                                    Dim Colonne_H As String
                                    Dim Colonne_I As String
                                    Dim Colonne_J As String

                                    Dim I As Integer
                                    Dim J As Integer

                                    I = 1

                                    Do Until ActiveSheet.Cells(I, 1).Value = ""
                                    For J = 1 To 10
                                    Select Case J
                                    Case 1
                                    Colonne_A = ActiveSheet.Cells(I, J).Value
                                    Case 2
                                    Colonne_B = ActiveSheet.Cells(I, J).Value
                                    Case 3
                                    Colonne_C = String(10 - Len(ActiveSheet.Cells(I, J).Value), "0") & ActiveSheet.Cells(I, J).Value
                                    Case 4
                                    Colonne_D = ActiveSheet.Cells(I, J).Value
                                    Case 5
                                    Colonne_E = ActiveSheet.Cells(I, J).Value
                                    Case 6
                                    Colonne_F = ActiveSheet.Cells(I, J).Value
                                    Case 7
                                    Colonne_G = ActiveSheet.Cells(I, J).Value
                                    Case 8
                                    Colonne_H = ActiveSheet.Cells(I, J).Value
                                    Case 9
                                    Colonne_I = ActiveSheet.Cells(I, J).Value
                                    Case 10
                                    Colonne_J = ActiveSheet.Cells(I, J).Value
                                    End Select
                                    Next J

                                    If Ecriture_Detail(Colonne_A, Colonne_B, Colonne_C, Colonne_D, Colonne_E, Colonne_F, Colonne_G, Colonne_H, Colonne_I, Colonne_J) = False Then
                                    Exit Do
                                    End If

                                    I = I + 1
                                    Loop

                                    Call Ecriture_Fin

                                    End Sub


                                    il ne te reste plus qu'a lancer la macro Export et ton fichier sera sur C:\Export.csv avec ta colonne C sur 10 charactères
                                    1. Bonjour,
                                      Je souhaite utiliser cet macro pour créer un fichier CSV de 30 colonnes.
                                      Voila ce que j'ai ecris

                                      Option Explicit

                                      Dim Fso As FileSystemObject
                                      'DETAIL DE L'ADRESS
                                      Type Export_csv
                                      Colonne_A As String
                                      Colonne_B As String
                                      Colonne_C As String
                                      Colonne_D As String
                                      Colonne_E As String
                                      Colonne_F As String
                                      Colonne_G As String
                                      Colonne_H As String
                                      Colonne_I As String
                                      Colonne_J As String
                                      Colonne_K As String
                                      Colonne_L As String
                                      Colonne_M As String
                                      Colonne_N As String
                                      Colonne_O As String
                                      Colonne_P As String
                                      Colonne_Q As String
                                      Colonne_R As String
                                      Colonne_S As String
                                      Colonne_T As String
                                      Colonne_U As String
                                      Colonne_V As String
                                      Colonne_W As String
                                      Colonne_X As String
                                      Colonne_Y As String
                                      Colonne_Z As String
                                      Colonne_AA As String
                                      Colonne_AB As String
                                      Colonne_AC As String
                                      Colonne_AD As String
                                      End Type

                                      'DETAIL DU FICHIER
                                      Public Detail_Export_csv As Export_csv

                                      'EMPLACEMENT DU FICHIER A CREER
                                      Public Emplacement_Fichier As String
                                      Private Function Ecriture_Entete() As Boolean
                                      'Dim J, NombreLignes As Integer
                                      Dim str, nom_fichier, Chemin As String
                                      Dim f, fs

                                      Set Fso = New FileSystemObject

                                      Chemin = ThisWorkbook.Path & "\"
                                      ' Code
                                      Sheets("cartoexploreur").Select
                                      On Error Resume Next
                                      Set fs = CreateObject("Scripting.FileSystemObject")
                                      ' On crée le fichier
                                      Sheets("BD").Select
                                      Emplacement_Fichier = Chemin + ActiveSheet.Cells(1, 27).Text

                                      Sheets("cartoexploreur").Select
                                      On Error Resume Next
                                      If Fso.FileExists(Emplacement_Fichier) = True Then
                                      Fso.DeleteFile Emplacement_Fichier, True
                                      End If
                                      On Error GoTo 0

                                      Set Fso = Nothing

                                      On Error Resume Next
                                      Open Emplacement_Fichier For Output As #1
                                      Select Case Err.Number
                                      Case Is = 0
                                      Ecriture_Entete = True
                                      Case 71
                                      MsgBox "Le support n'est pas accessible.", vbExclamation, "Message"
                                      Ecriture_Entete = False
                                      Case Else
                                      MsgBox Err.Description, vbExclamation, "Message"
                                      Ecriture_Entete = False
                                      End Select
                                      On Error GoTo 0

                                      End Function

                                      Private Function Ecriture_Detail(Colonne_A As String, Colonne_B As String, Colonne_C As String, Colonne_D As String, Colonne_E As String, Colonne_F As String, Colonne_G As String, Colonne_H As String, Colonne_I As String, Colonne_J As String, Colonne_K As String, Colonne_L As String, Colonne_M As String, Colonne_N As String, Colonne_O As String, Colonne_P As String, Colonne_Q As String, Colonne_R As String, Colonne_S As String, Colonne_T As String, Colonne_U As String, Colonne_V As String, Colonne_W As String, Colonne_X As String, Colonne_Y As String, Colonne_Z As String, Colonne_AA As String, Colonne_AB As String, Colonne_AC As String, Colonne_AD As String) As Boolean
                                      Ecriture_Detail = False

                                      Detail_Export_csv.Colonne_A = Colonne_A
                                      Detail_Export_csv.Colonne_B = Colonne_B
                                      Detail_Export_csv.Colonne_C = Colonne_C
                                      Detail_Export_csv.Colonne_D = Colonne_D
                                      Detail_Export_csv.Colonne_E = Colonne_E
                                      Detail_Export_csv.Colonne_F = Colonne_F
                                      Detail_Export_csv.Colonne_G = Colonne_G
                                      Detail_Export_csv.Colonne_H = Colonne_H
                                      Detail_Export_csv.Colonne_I = Colonne_I
                                      Detail_Export_csv.Colonne_J = Colonne_J
                                      Detail_Export_csv.Colonne_K = Colonne_K
                                      Detail_Export_csv.Colonne_L = Colonne_L
                                      Detail_Export_csv.Colonne_M = Colonne_M
                                      Detail_Export_csv.Colonne_N = Colonne_N
                                      Detail_Export_csv.Colonne_O = Colonne_O
                                      Detail_Export_csv.Colonne_P = Colonne_P
                                      Detail_Export_csv.Colonne_Q = Colonne_Q
                                      Detail_Export_csv.Colonne_R = Colonne_R
                                      Detail_Export_csv.Colonne_S = Colonne_S
                                      Detail_Export_csv.Colonne_T = Colonne_T
                                      Detail_Export_csv.Colonne_U = Colonne_U
                                      Detail_Export_csv.Colonne_V = Colonne_V
                                      Detail_Export_csv.Colonne_W = Colonne_W
                                      Detail_Export_csv.Colonne_X = Colonne_X
                                      Detail_Export_csv.Colonne_Y = Colonne_Y
                                      Detail_Export_csv.Colonne_Z = Colonne_Z
                                      Detail_Export_csv.Colonne_AA = Colonne_AA
                                      Detail_Export_csv.Colonne_AB = Colonne_AB
                                      Detail_Export_csv.Colonne_AC = Colonne_AC
                                      Detail_Export_csv.Colonne_AD = Colonne_AD

                                      On Error Resume Next
                                      Print #1, Detail_Export_csv.Colonne_A & ";" & Detail_Export_csv.Colonne_B & ";" & Detail_Export_csv.Colonne_C & ";" & Detail_Export_csv.Colonne_D & ";" & Detail_Export_csv.Colonne_E & ";" & Detail_Export_csv.Colonne_F & ";" & Detail_Export_csv.Colonne_G & ";" & Detail_Export_csv.Colonne_H & ";" & Detail_Export_csv.Colonne_I & ";" & Detail_Export_csv.Colonne_J & ";" & Detail_Export_csv.Colonne_K & ";" & Detail_Export_csv.Colonne_L & ";" & Detail_Export_csv.Colonne_M & ";" & Detail_Export_csv.Colonne_N & ";" & Detail_Export_csv.Colonne_O & ";" & Detail_Export_csv.Colonne_P & ";" & Detail_Export_csv.Colonne_Q & ";" & Detail_Export_csv.Colonne_R & ";" & Detail_Export_csv.Colonne_S & ";" & Detail_Export_csv.Colonne_T & ";" & Detail_Export_csv.Colonne_U & ";" & Detail_Export_csv.Colonne_V & ";" & Detail_Export_csv.Colonne_W & ";" & Detail_Export_csv.Colonne_X & ";" & Detail_Export_csv.Colonne_Y & ";" & Detail_Export_csv.Colonne_Z & ";" & Detail_Export_csv.Colonne_AA & ";" & Detail_Export_csv.Colonne_AB

                                      If Err.Number = 0 Then
                                      Ecriture_Detail = True
                                      Else
                                      Ecriture_Detail = False
                                      End If
                                      On Error GoTo 0

                                      End Function

                                      Private Sub Ecriture_Fin()

                                      Close #1

                                      End Sub

                                      Public Sub Export()

                                      Call Ecriture_Entete

                                      Dim Colonne_A As String
                                      Dim Colonne_B As String
                                      Dim Colonne_C As String
                                      Dim Colonne_D As String
                                      Dim Colonne_E As String
                                      Dim Colonne_F As String
                                      Dim Colonne_G As String
                                      Dim Colonne_H As String
                                      Dim Colonne_I As String
                                      Dim Colonne_J As String
                                      Dim Colonne_K As String
                                      Dim Colonne_L As String
                                      Dim Colonne_M As String
                                      Dim Colonne_N As String
                                      Dim Colonne_O As String
                                      Dim Colonne_P As String
                                      Dim Colonne_Q As String
                                      Dim Colonne_R As String
                                      Dim Colonne_S As String
                                      Dim Colonne_T As String
                                      Dim Colonne_U As String
                                      Dim Colonne_V As String
                                      Dim Colonne_W As String
                                      Dim Colonne_X As String
                                      Dim Colonne_Y As String
                                      Dim Colonne_Z As String
                                      Dim Colonne_AA As String
                                      Dim Colonne_AB As String
                                      Dim Colonne_AC As String
                                      Dim Colonne_AD As String

                                      Dim I As Integer
                                      Dim J As Integer

                                      I = 1

                                      Do Until ActiveSheet.Cells(I, 1).Value = ""
                                      For J = 1 To 30
                                      Select Case J
                                      Case 1
                                      Colonne_A = ActiveSheet.Cells(I, J).Value
                                      Case 2
                                      Colonne_B = ActiveSheet.Cells(I, J).Value
                                      Case 3
                                      Colonne_C = ActiveSheet.Cells(I, J).Value
                                      Case 4
                                      Colonne_D = ActiveSheet.Cells(I, J).Value
                                      Case 5
                                      Colonne_E = ActiveSheet.Cells(I, J).Value
                                      Case 6
                                      Colonne_F = ActiveSheet.Cells(I, J).Value
                                      Case 7
                                      Colonne_G = ActiveSheet.Cells(I, J).Value
                                      Case 8
                                      Colonne_H = ActiveSheet.Cells(I, J).Value
                                      Case 9
                                      Colonne_I = ActiveSheet.Cells(I, J).Value
                                      Case 10
                                      Colonne_J = ActiveSheet.Cells(I, J).Value
                                      Case 11
                                      Colonne_K = ActiveSheet.Cells(I, J).Value
                                      Case 12
                                      Colonne_L = ActiveSheet.Cells(I, J).Value
                                      Case 13
                                      Colonne_M = ActiveSheet.Cells(I, J).Value
                                      Case 14
                                      Colonne_N = ActiveSheet.Cells(I, J).Value
                                      Case 15
                                      Colonne_O = ActiveSheet.Cells(I, J).Value
                                      Case 16
                                      Colonne_P = ActiveSheet.Cells(I, J).Value
                                      Case 17
                                      Colonne_Q = ActiveSheet.Cells(I, J).Value
                                      Case 18
                                      Colonne_R = ActiveSheet.Cells(I, J).Value
                                      Case 19
                                      Colonne_S = ActiveSheet.Cells(I, J).Value
                                      Case 20
                                      Colonne_T = ActiveSheet.Cells(I, J).Value
                                      Case 21
                                      Colonne_U = ActiveSheet.Cells(I, J).Value
                                      Case 22
                                      Colonne_V = ActiveSheet.Cells(I, J).Value
                                      Case 23
                                      Colonne_W = ActiveSheet.Cells(I, J).Value
                                      Case 24
                                      Colonne_X = ActiveSheet.Cells(I, J).Value
                                      Case 25
                                      Colonne_Y = ActiveSheet.Cells(I, J).Value
                                      Case 26
                                      Colonne_Z = ActiveSheet.Cells(I, J).Value
                                      Case 27
                                      Colonne_AA = ActiveSheet.Cells(I, J).Value
                                      Case 28
                                      Colonne_AB = ActiveSheet.Cells(I, J).Value
                                      Case 29
                                      Colonne_AC = ActiveSheet.Cells(I, J).Value
                                      Case 30
                                      Colonne_AD = ActiveSheet.Cells(I, J).Value
                                      End Select
                                      Next J

                                      If Ecriture_Detail(Colonne_A, Colonne_B, Colonne_C, Colonne_D, Colonne_E, Colonne_F, Colonne_G, Colonne_H, Colonne_I, Colonne_J, Colonne_K, Colonne_L, Colonne_M, Colonne_N, Colonne_O, Colonne_P, Colonne_Q, Colonne_R, Colonne_S, Colonne_T, Colonne_U, Colonne_V, Colonne_W, Colonne_X, Colonne_Y, Colonne_Z, Colonne_AA, Colonne_AB, Colonne_AC, Colonne_AD) = False Then
                                      Exit Do
                                      End If

                                      I = I + 1
                                      Loop

                                      Call Ecriture_Fin

                                      End Sub


                                      Dans Print #1, je suis arrivé a mettre 28 colonnes, mais impossible de rajouter les deux dernières.
                                      Pouvez vous m'aider.
                                      Merci d'avance.
                                      Patrick
                                  • 1
                                  • 2