Problème VBA décalage de ligne

Le
Fred
Bonjour,

Bon, je vais essayer d'être concis, mais ce n'est pas facile
Je fais une macro VBA afin d'écrire le contenu d'une feuille dans un fichier
txt.
Le problème est que cela m'écris les lignes plusieurs foiset en décalant
les colonnes
Si l'un d'entre vous avait une idée, je dois dire que cela m'arrangerait
bien ! :

Sub Matrice_Facturation()

'Export de la feuille en cours vers un fichier à plat, sans séparateur et
délimitation largeur fixe

Debut:

On Error GoTo Message_Erreur


Dim Nom_Fic As Range
Range("A1").Select
Set Nom_Fic = ActiveCell

If Nom_Fic = 0 Then
MsgBox "Le numéro de dossier n'est pas renseigné, merci de le
compléter", vbInformation, "NUMERO DE DOSSIER MANQUANT"

Sheets("tarif").Select
ActiveWindow.SelectedSheets.Delete
Range("A1").Select
Sheets("Feuil1").Select
Range("A1").Select

Exit Sub
Else
End If

Set Plage = Range("A1", Range("B65536").End(xlUp))
'Set Plage = Range("B10", Range("B65536").End(xlUp))
Open "c:temp" & Nom_Fic & ".txt" For Output As #1
For Each c In Plage
For i = 0 To 4 'Sélectionne le nombre de colonnes
st = Left(c.Offset(0, i), 20) 'détermine la longueur du champ texte
If Len(st) < 20 Then
st = st & WorksheetFunction.Rept(" ", 20 - Len(st))
End If
st = st & ";"
rec = rec & st
Next i
Write #1, rec
rec = ""
Next c
Close #1

GoTo Fin

Message_Erreur:
MsgBox "Une erreur est survenue durant le traitement. Le fichier n'a pas été
transmis.", vbCritical, "ERREUR"
Fin:

Sheets("tarif").Select
ActiveWindow.SelectedSheets.Delete

Range("A1").Select
Sheets("Feuil1").Select
Range("A1").Select

End Sub


FRED.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred
Le #19358211
Je me réponds : j'ai trouvé, c'était une erreur de ma part : Set Plage =
Range("A1", Range("B65536").End(xlUp))
"B65536" au lieu de "A65536" !!!
Quel boulet !!

Merci pour ceux qui ont commencé à regarder.

FRED.



"Fred" news:%
Bonjour,

Bon, je vais essayer d'être concis, mais ce n'est pas facile...
Je fais une macro VBA afin d'écrire le contenu d'une feuille dans un
fichier txt.
Le problème est que cela m'écris les lignes plusieurs fois...et en
décalant les colonnes...
Si l'un d'entre vous avait une idée, je dois dire que cela m'arrangerait
bien ! :

Sub Matrice_Facturation()

'Export de la feuille en cours vers un fichier à plat, sans séparateur et
délimitation largeur fixe

Debut:

On Error GoTo Message_Erreur


Dim Nom_Fic As Range
Range("A1").Select
Set Nom_Fic = ActiveCell

If Nom_Fic = 0 Then
MsgBox "Le numéro de dossier n'est pas renseigné, merci de le
compléter", vbInformation, "NUMERO DE DOSSIER MANQUANT"

Sheets("tarif").Select
ActiveWindow.SelectedSheets.Delete
Range("A1").Select
Sheets("Feuil1").Select
Range("A1").Select

Exit Sub
Else
End If

Set Plage = Range("A1", Range("B65536").End(xlUp))
'Set Plage = Range("B10", Range("B65536").End(xlUp))
Open "c:temp" & Nom_Fic & ".txt" For Output As #1
For Each c In Plage
For i = 0 To 4 'Sélectionne le nombre de colonnes
st = Left(c.Offset(0, i), 20) 'détermine la longueur du champ texte
If Len(st) < 20 Then
st = st & WorksheetFunction.Rept(" ", 20 - Len(st))
End If
st = st & ";"
rec = rec & st
Next i
Write #1, rec
rec = ""
Next c
Close #1

GoTo Fin

Message_Erreur:
MsgBox "Une erreur est survenue durant le traitement. Le fichier n'a pas
été transmis.", vbCritical, "ERREUR"
Fin:

Sheets("tarif").Select
ActiveWindow.SelectedSheets.Delete

Range("A1").Select
Sheets("Feuil1").Select
Range("A1").Select

End Sub


FRED.


Publicité
Poster une réponse
Anonyme