Définition de commande macro

Résolu
stephbret56 Messages postés 195 Statut Membre -  
 pmfontaine38 -
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

  • 1
  • 2
  1. m@rina Messages postés 27636 Date d'inscription   Statut Modérateur Dernière intervention   11 566
     
    Bonjour,

    Il faut que tu ajoutes, avant le SaveAs

    Application.DisplayAlerts = False

    et après
    Application.DisplayAlerts = True


    m@rina

    0
  2. stephbret56 Messages postés 195 Statut Membre 6
     
    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.
    0
  3. m@rina Messages postés 27636 Date d'inscription   Statut Modérateur Dernière intervention   11 566
     
    Tu peux mettre un exemple de fichier ici :
    https://www.cjoint.com/
    sans oublier de nous donner le lien.

    m@rina
    0
  4. stephbret56 Messages postés 195 Statut Membre 6
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. stephbret56 Messages postés 195 Statut Membre 6
     
    m@rina as-tu une idée sur comment faire cette macro faut-il d'autre info sur le fichier excel
    0
  7. m@rina Messages postés 27636 Date d'inscription   Statut Modérateur Dernière intervention   11 566
     
    Ta réponse n'apporte rien de plus.
    Il faut que tu mettres à notre disposition un extrait du fichier, avec la macro.

    m@rina
    0
  8. stephbret56 Messages postés 195 Statut Membre 6
     
    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
    0
  9. NicoDisso Messages postés 231 Statut Membre 32
     
    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
    0
  10. stephbret56 Messages postés 195 Statut Membre 6
     
    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
    0
  11. NicoDisso Messages postés 231 Statut Membre 32
     
    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...
    0
  12. stephbret56 Messages postés 195 Statut Membre 6
     
    Je ne comprend pas bien ta solution, tu peu être un peut plus précis.merci
    0
  13. NicoDisso Messages postés 231 Statut Membre 32
     
    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
    0
  14. stephbret56 Messages postés 195 Statut Membre 6
     
    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???
    0
  15. NicoDisso Messages postés 231 Statut Membre 32
     
    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...
    0
  16. stephbret56 Messages postés 195 Statut Membre 6
     
    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
    0
  17. NicoDisso Messages postés 231 Statut Membre 32
     
    tu n'as que trois ligne dans ton fichier ?
    0
  18. stephbret56 Messages postés 195 Statut Membre 6
     
    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.
    0
  19. NicoDisso Messages postés 231 Statut Membre 32
     
    merci, j'ai eut peur...
    0
  20. stephbret56 Messages postés 195 Statut Membre 6
     
    Pas de panique je n'aurai jamais insisté autant pour 3 lignes

    Merci A+
    0
  21. NicoDisso Messages postés 231 Statut Membre 32
     
    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
    0
    1. pmfontaine38
       
      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
      0
  • 1
  • 2