enregistrement comment que ca se fait que objet 400

B

bret

Guest
pourquoi me fait il une erreur dans mon code ?

voici le code pour ceux qui ne veulent pas ouvrir le fichier :

Sub CreateAfile()
Dim nomfichier As Variant
nomfichier = Sheets("quest").Select
Range("f14").Select
dodo = Sheets("feuil1").Select
Range("A1").Select
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\ajeter\" & nomfichier, True)
a.WriteLine (dodo)
a.Close
End Sub

l'erreur c'est une boite de dialogue 400 !!??

quelqu'un pourrait me dire comment je dois faire pour enregistrer
dans un fichier txt la cellule A1 de feuil1 sans les tabulations après la ligne A1

merci

j'ai vu plein de tutoriaux sur ce sujet mais je pige rien si on me donnait la solution toute cuite dans le bec ce serait cool !

merci pour votre aide ! mssieur dame !
 

Pièces jointes

  • test1.zip
    10.4 KB · Affichages: 10
  • test1.zip
    10.4 KB · Affichages: 12
  • test1.zip
    10.4 KB · Affichages: 14
W

wally

Guest
Bonjour bret et le forum,

Essaye comme ceci :

Sub CreateAfile()
Dim nomfichier As Variant
nomfichier = Sheets("quest").Range("f14")
dodo = Sheets("feuil1").Range("A1")
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\ajeter\" & nomfichier, True)
a.WriteLine (dodo)
a.Close
End Sub

Le dossier "c:\ajeter" doit exister au moment où la macro est exécutée. D'autre part, qu'entends-tu exactement par "sans les tabulations après la ligne A1" ?


Slts

wally
 
@

@+Thierry

Guest
Bonjour Wally, Bret

Et sans créer un Scripting.FileSystemObject, on peut aussi faire ceci :

Sub BuildTXT()
Dim TheText As String, TheFile As String

With ThisWorkbook
TheFile = "C:\ajeter\" & .Sheets("quest").Range("F14")
TheText = .Sheets("feuil1").Range("A1")
End With

Open TheFile For Output As #1
Print #1, TheText
Close

End Sub

Mais je ne sais pas si c'est ce que veut Bret ...

Bon Aprèm
@+Thierry
 
B

bret

Guest
merci les gars vos solutions sont fantastiques ça résouds tous mes probs !

ce que je voulais dire par suppression des espaces aprés la cellulle A1, c'est :

l'idée que le résultat de la cellulle A1 s'inscrive à l'interieur d'un fichier texte or aprés ce résultat il me reste des espaces ou des tabulations

Ce fichier est ensuite lu dans une autre application et apparemment elle
bloque lorsqu'il y a un formattage (Excel avec les tabulations ou trop d'espaces vides).

D'ou la necessité de connaitre une méthode pour virer ces espaces (ou tabulations) aprés le résultat de la cellulle A1

c'est de ça que je voulais parler ! (j' espere avoir été assez clair :)) )


en tout cas merci !
 
W

wally

Guest
Bonsoir bret et le forum,

Pour supprimer les espaces en fin de chaîne, on peut faire :

dodo = Rtrim(Sheets("feuil1").Range("A1"))

Pour les tabulations, il serait intéressant de voir ce que contient exactement le fichier texte. Pourrais-tu en zipper un exemple ?


Slts

wally
 
B

bret

Guest
En fait grace aux solutions proposés je n'ai plus de tabulations dans le fichier texte mais des espaces après l'enregistrement du résultat

donc je vais essayer ta solution et confirmerai si cela fonctionne

merci messieurs !!
 
B

bret

Guest
j'ai essayé ça fonctionne pas ! en plus je ne sais pas ou place ce code de Rtrim...

bon ! je vais essayé d' être le plus clair possible !

voilà: aprés avoir rempli des centaines de cellules de texte de chiffres etc.

je concatene toutes les cellulles de la feuille B dans la feuille A cellulle A1

puis avec un bouton "enregistrer" situé dans la feuille A, quand j'appuies dessus il enregistre le contenu de la cellulle A1 feuille A dans un fichier texte

jusque là tout marche bien !


seulement lorsque j'ouvre mon autre application qui charge le fichier texte
il ne l'ouvre pas à cause des espaces situé après le contenu enregistré

exemple j'ai un truc du genre: "toto est parti en vacance avec maman"
après le dernier guillemet je ne devrais pas avoir d'espaces!

puisque lorsque j'efface ces fameux espaces jusqu'à la dernière lettre du contenu , là mon application ouvre ce fichier !!!! et tout fonctionne !

donc à moins de le faire pour chaque fichier Existe t-il une formule "magique" qui supprime toute espaces après le contenu pendant l'enregistrement ?

la question est posée !

merci ! en tout cas à tous pour l'aide qui m'a été dispensée jusqu'à maintenant !
 
W

wally

Guest
Bonjour bret et le forum,

Pour répondre à ta question, il faudrait voir exactement le contenu du fichier texte, juste après l'exécution de la macro. Il est en effet possible que ce fichier contienne des caractères spéciaux qui apparaissent visuellement commes des espaces, mais qui en réalité n'en sont pas...

Le plus simple serait peut-être de zipper un de ces fichiers et le mettre en pièce jointe.


Slts

wally
 
B

bret

Guest
Bonjour me revoilà avec mon fichier !
désolé Wally mais hier je n'ai pas trop suivi le forum !

donc voilà pour répondre à ta demande j'ai crée un exemple de ce que je veux !

j'ai dans le zip : le fichier XLS pour créer le fichier et j'ai mis un fichier texte
pour voir le résultat

sur le fichier texte: à la fin du mot mézon, le curseur peut se placer sur la ligne du dessous ! or l'idée c'est que le curseur ne doit pas passer de ligne... (pas de retour chariot, enfin je suppose que c ça ?)

merci d'avance...
 

Pièces jointes

  • test.zip
    9.7 KB · Affichages: 12
  • test.zip
    9.7 KB · Affichages: 11
  • test.zip
    9.7 KB · Affichages: 13
B

bret

Guest
Merci bocoup !!!!!


tu me sauves la vie !

C'est géant ton truc !


tu m'as fait gagné un temps fou !

Wally Z'Best !

A mon avis le post: enregistrement comment que ca se fait que objet 400

devrait figurer qque part pour aider d'autre personne !

encore merci ! WALLY
 

Statistiques des forums

Discussions
312 775
Messages
2 092 023
Membres
105 151
dernier inscrit
Stephkno