VBA - Enregistrer sous spécifique
Fermé
Nico
-
2 mars 2016 à 11:17
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 3 mars 2016 à 07:59
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 3 mars 2016 à 07:59
A voir également:
- Vba enregistrer sous chemin variable
- Audacity enregistrer son pc - Guide
- Enregistrer son ecran - Guide
- Enregistrer video youtube - Guide
- Enregistrer en pdf - Guide
- Vba l'indice n'appartient pas à la sélection - Forum VB / VBA
5 réponses
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
2 mars 2016 à 11:41
2 mars 2016 à 11:41
Bonjour,
Comme ceci:
Comme ceci:
Dim chemin As Variant Dim NoLigne, DerniereLigne, Tableau chemin = Application.GetOpenFilename("Fichiers texte (*.txt), *.txt") If VarType(chemin) = vbBoolean Then MsgBox "Opération annulée" Else 'Ecrit dans le fichier txt Do While NoLigne <= DerniereLigne Open chemin For Append As #NoLigne Tableau(NoLigne) = Replace(Tableau(NoLigne), vbCrLf, "") Tableau(NoLigne) = Replace(Tableau(NoLigne), vbCr, "") Tableau(NoLigne) = Replace(Tableau(NoLigne), vbLf, "") Print #NoLigne, Tableau(NoLigne) Close NoLigne = NoLigne + 1 Loop End If
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
2 mars 2016 à 16:33
2 mars 2016 à 16:33
Bonjour,
Ce qui est urgent c'est que tu regardes l'aide sur Open avant de l'utiliser.
Parce que
c'est du grand n'importe quoi qui fait peur...
On n'ouvre un fichier qu'UNE FOIS, et avec son #filenum fourni par windows
Là tu en ouvres un par ligne (que tu ne refermes sans doute pas d'ailleurs...), avec en plus le risque d'aller pourrir les écritures en cours des autres processus.
Sinon pour ta question soit tu ouvres 2 fichiers (1 en lecture, l'autre en écriture), soit l'original est destiné à être supprimé, auquel cas tu travailles dessus et te contentes de le renommer à la fin.
eric
Ce qui est urgent c'est que tu regardes l'aide sur Open avant de l'utiliser.
Parce que
Do While NoLigne <= DerniereLigne Open Chemin For Append As #NoLigne
c'est du grand n'importe quoi qui fait peur...
On n'ouvre un fichier qu'UNE FOIS, et avec son #filenum fourni par windows
Là tu en ouvres un par ligne (que tu ne refermes sans doute pas d'ailleurs...), avec en plus le risque d'aller pourrir les écritures en cours des autres processus.
Sinon pour ta question soit tu ouvres 2 fichiers (1 en lecture, l'autre en écriture), soit l'original est destiné à être supprimé, auquel cas tu travailles dessus et te contentes de le renommer à la fin.
eric
Le Pingou
Messages postés
12048
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 avril 2024
1 427
Modifié par Le Pingou le 2/03/2016 à 16:52
Modifié par Le Pingou le 2/03/2016 à 16:52
Bonjour,
Juste au passage, pour enregistrer sous….. essayer ce code :
Salutations.
Le Pingou
Juste au passage, pour enregistrer sous….. essayer ce code :
Sub test()Note, à adapter dans votre procédure… !
Dim fichier As String
On Error Resume Next
fichier = Application.GetSaveAsFilename( _
fileFilter:="Excel Files (*.xls), *.xls")
If fichier <> False Then ThisWorkbook.SaveAs fichier
End Sub
Salutations.
Le Pingou
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
3 mars 2016 à 07:59
3 mars 2016 à 07:59
Un petit peu de lecture pour avancer en VBA:
http://www.info-3000.com/vbvba/fichiers/#FichierTexte
http://www.info-3000.com/vbvba/fichiers/#FichierTexte
2 mars 2016 à 12:23
Tout d'abord merci de votre réponse.
Cependant ce n'est pas ce que je recherche, dans votre code vous faites ouvrir une fenêtre qui me demande de sélectionner un fichier à ouvrir or ce que je recherche est de faire un enregistrer sous.
Avez-vous une solution?
Merci d'avance.