Définition de commande macro

Résolu/Fermé
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 - 28 mai 2009 à 10:59
 pmfontaine38 - 10 févr. 2010 à 09:27
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.
A voir également:

30 réponses

m@rina Messages postés 20080 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 26 avril 2024 11 272
28 mai 2009 à 13:22
Bonjour,

Il faut que tu ajoutes, avant le SaveAs

Application.DisplayAlerts = False

et après
Application.DisplayAlerts = True


m@rina

0
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
28 mai 2009 à 13:57
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
m@rina Messages postés 20080 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 26 avril 2024 11 272
28 mai 2009 à 14:08
Tu peux mettre un exemple de fichier ici :
https://www.cjoint.com/
sans oublier de nous donner le lien.

m@rina
0
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
28 mai 2009 à 14:29
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
28 mai 2009 à 15:44
m@rina as-tu une idée sur comment faire cette macro faut-il d'autre info sur le fichier excel
0
m@rina Messages postés 20080 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 26 avril 2024 11 272
28 mai 2009 à 16:56
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
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
29 mai 2009 à 07:51
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
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
29 mai 2009 à 08:36
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
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
29 mai 2009 à 09:27
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
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
29 mai 2009 à 10:01
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
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
29 mai 2009 à 10:12
Je ne comprend pas bien ta solution, tu peu être un peut plus précis.merci
0
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
29 mai 2009 à 10:27
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
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
29 mai 2009 à 10:37
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
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
29 mai 2009 à 10:47
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
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
29 mai 2009 à 11:08
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
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
29 mai 2009 à 11:10
tu n'as que trois ligne dans ton fichier ?
0
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
29 mai 2009 à 11:17
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
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
29 mai 2009 à 11:22
merci, j'ai eut peur...
0
stephbret56 Messages postés 186 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 2 septembre 2011 6
29 mai 2009 à 11:24
Pas de panique je n'aurai jamais insisté autant pour 3 lignes

Merci A+
0
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
29 mai 2009 à 11:37
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
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