Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1 feuille
c'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture rappelée. Très
génant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une facture et
d'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1 feuille
c'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture rappelée. Très
génant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une facture et
d'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1 feuille
c'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture rappelée. Très
génant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une facture et
d'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la sauvegarde
d'une
feuille, ça parait en effet beaucoup. Le classeur qui te sert de 'modèle'
a
peut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardée
hérite en partie. Il y a quelque part à cette adresse une page qui traite
de
l'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardées
le sont au format .xls, pourrais-tu préciser ce qui fait obstacle à leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuille
c'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture rappelée.
Très
génant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une facture
et
d'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la sauvegarde
d'une
feuille, ça parait en effet beaucoup. Le classeur qui te sert de 'modèle'
a
peut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardée
hérite en partie. Il y a quelque part à cette adresse une page qui traite
de
l'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardées
le sont au format .xls, pourrais-tu préciser ce qui fait obstacle à leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuille
c'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture rappelée.
Très
génant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une facture
et
d'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la sauvegarde
d'une
feuille, ça parait en effet beaucoup. Le classeur qui te sert de 'modèle'
a
peut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardée
hérite en partie. Il y a quelque part à cette adresse une page qui traite
de
l'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardées
le sont au format .xls, pourrais-tu préciser ce qui fait obstacle à leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuille
c'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture rappelée.
Très
génant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une facture
et
d'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les données
qui sont sauvegardées, il y a aussi la mise en forme et quelques macros.
Je pense que la mise en forme est en partie responsable du poids des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les réintégrer à
la demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" a écrit dans le message
de news:Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la sauvegarde
d'unefeuille, ça parait en effet beaucoup. Le classeur qui te sert de 'modèle'
apeut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardéehérite en partie. Il y a quelque part à cette adresse une page qui traite
del'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardéesle sont au format .xls, pourrais-tu préciser ce qui fait obstacle à leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuillec'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture rappelée.
Trèsgénant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une facture
etd'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les données
qui sont sauvegardées, il y a aussi la mise en forme et quelques macros.
Je pense que la mise en forme est en partie responsable du poids des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les réintégrer à
la demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le message
de news:4026C064.EBCC15E1@wanadoo.fr...
Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la sauvegarde
d'une
feuille, ça parait en effet beaucoup. Le classeur qui te sert de 'modèle'
a
peut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardée
hérite en partie. Il y a quelque part à cette adresse une page qui traite
de
l'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardées
le sont au format .xls, pourrais-tu préciser ce qui fait obstacle à leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuille
c'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture rappelée.
Très
génant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une facture
et
d'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les données
qui sont sauvegardées, il y a aussi la mise en forme et quelques macros.
Je pense que la mise en forme est en partie responsable du poids des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les réintégrer à
la demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" a écrit dans le message
de news:Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la sauvegarde
d'unefeuille, ça parait en effet beaucoup. Le classeur qui te sert de 'modèle'
apeut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardéehérite en partie. Il y a quelque part à cette adresse une page qui traite
del'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardéesle sont au format .xls, pourrais-tu préciser ce qui fait obstacle à leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuillec'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture rappelée.
Trèsgénant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une facture
etd'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour,
En tout cas, je comprends mieux. Les deux petites macros ci-dessous
pourraient
te donner un point de départ, à adapter à tes besoins.
La première exporte dans un fichier texte les valeurs d'un ensemble de
cellules,
ajoutées ici une à une dans une variable Plage, mais une plage nommée
regroupant
les cellules contenant tes données à sauvegarder peut aussi bien faire
l'affaire
(c'est moi qui ne suis pas sûr d'être très clair, là..). Le nom du fichier
texte
est basé sur la date du jour parce que ça peut être un moyen assez simple
de le
retrouver par la suite mais tu as sans doute déjà d'autres moyens de
nommer tes
sauvegardes. Les données sont écrites dans le fichier texte sous la forme
adresse de la cellule=valeur de la cellule
(comme dans un fichier .ini)
La deuxième macro va lire le fichier texte pour écrire, dans une feuille
qui
peut avoir été mise en forme auparavant (pourquoi pas un modèle en effet),
'valeur de la cellule' dans Range('adresse de la cellule'). Elle nécessite
Excel
2000 ou + récent à cause de la fonction Split mais si tu utilises Excel 97
on
peut adapter.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
'========================== > Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("c6"), Range("c7"), Range("c11"), _
Range("c12"), Range("f6"), Range("f7"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
Sub ImportDatas()
Dim FichTxt, S, Data
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
'========================== >
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les
données
qui sont sauvegardées, il y a aussi la mise en forme et quelques macros.
Je pense que la mise en forme est en partie responsable du poids des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les
réintégrer à
la demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" a écrit dans le
message
de news:Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la
sauvegarde
d'unefeuille, ça parait en effet beaucoup. Le classeur qui te sert de
'modèle'
apeut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardéehérite en partie. Il y a quelque part à cette adresse une page qui
traite
del'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardéesle sont au format .xls, pourrais-tu préciser ce qui fait obstacle à
leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement
dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuillec'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer
une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture
rappelée.
Trèsgénant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une
facture
etd'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons
sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour,
En tout cas, je comprends mieux. Les deux petites macros ci-dessous
pourraient
te donner un point de départ, à adapter à tes besoins.
La première exporte dans un fichier texte les valeurs d'un ensemble de
cellules,
ajoutées ici une à une dans une variable Plage, mais une plage nommée
regroupant
les cellules contenant tes données à sauvegarder peut aussi bien faire
l'affaire
(c'est moi qui ne suis pas sûr d'être très clair, là..). Le nom du fichier
texte
est basé sur la date du jour parce que ça peut être un moyen assez simple
de le
retrouver par la suite mais tu as sans doute déjà d'autres moyens de
nommer tes
sauvegardes. Les données sont écrites dans le fichier texte sous la forme
adresse de la cellule=valeur de la cellule
(comme dans un fichier .ini)
La deuxième macro va lire le fichier texte pour écrire, dans une feuille
qui
peut avoir été mise en forme auparavant (pourquoi pas un modèle en effet),
'valeur de la cellule' dans Range('adresse de la cellule'). Elle nécessite
Excel
2000 ou + récent à cause de la fonction Split mais si tu utilises Excel 97
on
peut adapter.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
'========================== > Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("c6"), Range("c7"), Range("c11"), _
Range("c12"), Range("f6"), Range("f7"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
Sub ImportDatas()
Dim FichTxt, S, Data
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
'========================== >
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les
données
qui sont sauvegardées, il y a aussi la mise en forme et quelques macros.
Je pense que la mise en forme est en partie responsable du poids des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les
réintégrer à
la demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le
message
de news:4026C064.EBCC15E1@wanadoo.fr...
Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la
sauvegarde
d'une
feuille, ça parait en effet beaucoup. Le classeur qui te sert de
'modèle'
a
peut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardée
hérite en partie. Il y a quelque part à cette adresse une page qui
traite
de
l'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardées
le sont au format .xls, pourrais-tu préciser ce qui fait obstacle à
leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement
dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuille
c'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer
une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture
rappelée.
Très
génant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une
facture
et
d'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons
sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour,
En tout cas, je comprends mieux. Les deux petites macros ci-dessous
pourraient
te donner un point de départ, à adapter à tes besoins.
La première exporte dans un fichier texte les valeurs d'un ensemble de
cellules,
ajoutées ici une à une dans une variable Plage, mais une plage nommée
regroupant
les cellules contenant tes données à sauvegarder peut aussi bien faire
l'affaire
(c'est moi qui ne suis pas sûr d'être très clair, là..). Le nom du fichier
texte
est basé sur la date du jour parce que ça peut être un moyen assez simple
de le
retrouver par la suite mais tu as sans doute déjà d'autres moyens de
nommer tes
sauvegardes. Les données sont écrites dans le fichier texte sous la forme
adresse de la cellule=valeur de la cellule
(comme dans un fichier .ini)
La deuxième macro va lire le fichier texte pour écrire, dans une feuille
qui
peut avoir été mise en forme auparavant (pourquoi pas un modèle en effet),
'valeur de la cellule' dans Range('adresse de la cellule'). Elle nécessite
Excel
2000 ou + récent à cause de la fonction Split mais si tu utilises Excel 97
on
peut adapter.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
'========================== > Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("c6"), Range("c7"), Range("c11"), _
Range("c12"), Range("f6"), Range("f7"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
Sub ImportDatas()
Dim FichTxt, S, Data
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
'========================== >
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les
données
qui sont sauvegardées, il y a aussi la mise en forme et quelques macros.
Je pense que la mise en forme est en partie responsable du poids des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les
réintégrer à
la demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" a écrit dans le
message
de news:Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la
sauvegarde
d'unefeuille, ça parait en effet beaucoup. Le classeur qui te sert de
'modèle'
apeut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardéehérite en partie. Il y a quelque part à cette adresse une page qui
traite
del'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardéesle sont au format .xls, pourrais-tu préciser ce qui fait obstacle à
leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement
dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuillec'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer
une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture
rappelée.
Trèsgénant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une
facture
etd'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons
sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour Frédéric, bonjour le Forum,
Là, je suis largué.
Dans Sub ExportDatas()
Je ne comprend pas: FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm
yyyy") & ".txt"
______________________________________
Ci dessous, les cellules et les plages devant être obligatoirement sauvées.
N° de facture---------------G9
N° client--------------------B16
Références diverses--------C18:C23
Quantité, Kilo--------------A27:H55 (Dans cette plage, c'est variable,
parfois, il n'y a qu'une ligne remplie, parfois
Désignation, HT, TTC il y en a plusieurs).
Montants HT, TVA, TTC---G58:G60
Nom, Adresse, etc----------F15:F18
Adresse livraison-----------F21
Le "Set Plage" ci-dessous est-il bien rempli?
Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), Range("f15:f18"),
Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
__________________________________________
Pour info, le N° de facture ressemble à ceci:
2056-1-2004 (N°-Mois-Année)
__________________________________________
Au départ, j'avais dans l'idée de sauvegarder les données dans une feuille
de calcul du classeur Facture.
Une ligne par facture.
Par exemple:
Cellule G9 de feuille Facture correspond à colonne A feuille Sauvegarde.
" B16 " " " " " " B "
"
Plage C18:C23 " " " " colonnes C, D, E, F,
G, H feuille Sauvegarde.
etc.......................................
Merci
Jipé
"Frédéric Sigonneau" a écrit dans le message
de news:Bonjour,
En tout cas, je comprends mieux. Les deux petites macros ci-dessous
pourraientte donner un point de départ, à adapter à tes besoins.
La première exporte dans un fichier texte les valeurs d'un ensemble de
cellules,ajoutées ici une à une dans une variable Plage, mais une plage nommée
regroupantles cellules contenant tes données à sauvegarder peut aussi bien faire
l'affaire(c'est moi qui ne suis pas sûr d'être très clair, là..). Le nom du fichier
texteest basé sur la date du jour parce que ça peut être un moyen assez simple
de leretrouver par la suite mais tu as sans doute déjà d'autres moyens de
nommer tessauvegardes. Les données sont écrites dans le fichier texte sous la forme
adresse de la cellule=valeur de la cellule
(comme dans un fichier .ini)
La deuxième macro va lire le fichier texte pour écrire, dans une feuille
quipeut avoir été mise en forme auparavant (pourquoi pas un modèle en effet),
'valeur de la cellule' dans Range('adresse de la cellule'). Elle nécessite
Excel2000 ou + récent à cause de la fonction Split mais si tu utilises Excel 97
onpeut adapter.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
'========================== > > Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("c6"), Range("c7"), Range("c11"), _
Range("c12"), Range("f6"), Range("f7"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
Sub ImportDatas()
Dim FichTxt, S, Data
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
'========================== > >
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les
donnéesqui sont sauvegardées, il y a aussi la mise en forme et quelques macros.
Je pense que la mise en forme est en partie responsable du poids des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les
réintégrer àla demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" a écrit dans le
messagede news:Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la
sauvegarded'unefeuille, ça parait en effet beaucoup. Le classeur qui te sert de
'modèle'apeut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardéehérite en partie. Il y a quelque part à cette adresse une page qui
traitedel'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardéesle sont au format .xls, pourrais-tu préciser ce qui fait obstacle à
leurmodification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement
dans undossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuillec'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer
unefacture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture
rappelée.Trèsgénant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une
factureetd'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons
sousforme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour Frédéric, bonjour le Forum,
Là, je suis largué.
Dans Sub ExportDatas()
Je ne comprend pas: FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm
yyyy") & ".txt"
______________________________________
Ci dessous, les cellules et les plages devant être obligatoirement sauvées.
N° de facture---------------G9
N° client--------------------B16
Références diverses--------C18:C23
Quantité, Kilo--------------A27:H55 (Dans cette plage, c'est variable,
parfois, il n'y a qu'une ligne remplie, parfois
Désignation, HT, TTC il y en a plusieurs).
Montants HT, TVA, TTC---G58:G60
Nom, Adresse, etc----------F15:F18
Adresse livraison-----------F21
Le "Set Plage" ci-dessous est-il bien rempli?
Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), Range("f15:f18"),
Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
__________________________________________
Pour info, le N° de facture ressemble à ceci:
2056-1-2004 (N°-Mois-Année)
__________________________________________
Au départ, j'avais dans l'idée de sauvegarder les données dans une feuille
de calcul du classeur Facture.
Une ligne par facture.
Par exemple:
Cellule G9 de feuille Facture correspond à colonne A feuille Sauvegarde.
" B16 " " " " " " B "
"
Plage C18:C23 " " " " colonnes C, D, E, F,
G, H feuille Sauvegarde.
etc.......................................
Merci
Jipé
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le message
de news:40291E9A.48CF9A@wanadoo.fr...
Bonjour,
En tout cas, je comprends mieux. Les deux petites macros ci-dessous
pourraient
te donner un point de départ, à adapter à tes besoins.
La première exporte dans un fichier texte les valeurs d'un ensemble de
cellules,
ajoutées ici une à une dans une variable Plage, mais une plage nommée
regroupant
les cellules contenant tes données à sauvegarder peut aussi bien faire
l'affaire
(c'est moi qui ne suis pas sûr d'être très clair, là..). Le nom du fichier
texte
est basé sur la date du jour parce que ça peut être un moyen assez simple
de le
retrouver par la suite mais tu as sans doute déjà d'autres moyens de
nommer tes
sauvegardes. Les données sont écrites dans le fichier texte sous la forme
adresse de la cellule=valeur de la cellule
(comme dans un fichier .ini)
La deuxième macro va lire le fichier texte pour écrire, dans une feuille
qui
peut avoir été mise en forme auparavant (pourquoi pas un modèle en effet),
'valeur de la cellule' dans Range('adresse de la cellule'). Elle nécessite
Excel
2000 ou + récent à cause de la fonction Split mais si tu utilises Excel 97
on
peut adapter.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
'========================== > > Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("c6"), Range("c7"), Range("c11"), _
Range("c12"), Range("f6"), Range("f7"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
Sub ImportDatas()
Dim FichTxt, S, Data
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
'========================== > >
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les
données
qui sont sauvegardées, il y a aussi la mise en forme et quelques macros.
Je pense que la mise en forme est en partie responsable du poids des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les
réintégrer à
la demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le
message
de news:4026C064.EBCC15E1@wanadoo.fr...
Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la
sauvegarde
d'une
feuille, ça parait en effet beaucoup. Le classeur qui te sert de
'modèle'
a
peut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardée
hérite en partie. Il y a quelque part à cette adresse une page qui
traite
de
l'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardées
le sont au format .xls, pourrais-tu préciser ce qui fait obstacle à
leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement
dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuille
c'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer
une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture
rappelée.
Très
génant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une
facture
et
d'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons
sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour Frédéric, bonjour le Forum,
Là, je suis largué.
Dans Sub ExportDatas()
Je ne comprend pas: FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm
yyyy") & ".txt"
______________________________________
Ci dessous, les cellules et les plages devant être obligatoirement sauvées.
N° de facture---------------G9
N° client--------------------B16
Références diverses--------C18:C23
Quantité, Kilo--------------A27:H55 (Dans cette plage, c'est variable,
parfois, il n'y a qu'une ligne remplie, parfois
Désignation, HT, TTC il y en a plusieurs).
Montants HT, TVA, TTC---G58:G60
Nom, Adresse, etc----------F15:F18
Adresse livraison-----------F21
Le "Set Plage" ci-dessous est-il bien rempli?
Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), Range("f15:f18"),
Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
__________________________________________
Pour info, le N° de facture ressemble à ceci:
2056-1-2004 (N°-Mois-Année)
__________________________________________
Au départ, j'avais dans l'idée de sauvegarder les données dans une feuille
de calcul du classeur Facture.
Une ligne par facture.
Par exemple:
Cellule G9 de feuille Facture correspond à colonne A feuille Sauvegarde.
" B16 " " " " " " B "
"
Plage C18:C23 " " " " colonnes C, D, E, F,
G, H feuille Sauvegarde.
etc.......................................
Merci
Jipé
"Frédéric Sigonneau" a écrit dans le message
de news:Bonjour,
En tout cas, je comprends mieux. Les deux petites macros ci-dessous
pourraientte donner un point de départ, à adapter à tes besoins.
La première exporte dans un fichier texte les valeurs d'un ensemble de
cellules,ajoutées ici une à une dans une variable Plage, mais une plage nommée
regroupantles cellules contenant tes données à sauvegarder peut aussi bien faire
l'affaire(c'est moi qui ne suis pas sûr d'être très clair, là..). Le nom du fichier
texteest basé sur la date du jour parce que ça peut être un moyen assez simple
de leretrouver par la suite mais tu as sans doute déjà d'autres moyens de
nommer tessauvegardes. Les données sont écrites dans le fichier texte sous la forme
adresse de la cellule=valeur de la cellule
(comme dans un fichier .ini)
La deuxième macro va lire le fichier texte pour écrire, dans une feuille
quipeut avoir été mise en forme auparavant (pourquoi pas un modèle en effet),
'valeur de la cellule' dans Range('adresse de la cellule'). Elle nécessite
Excel2000 ou + récent à cause de la fonction Split mais si tu utilises Excel 97
onpeut adapter.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
'========================== > > Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("c6"), Range("c7"), Range("c11"), _
Range("c12"), Range("f6"), Range("f7"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
Sub ImportDatas()
Dim FichTxt, S, Data
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
'========================== > >
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les
donnéesqui sont sauvegardées, il y a aussi la mise en forme et quelques macros.
Je pense que la mise en forme est en partie responsable du poids des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les
réintégrer àla demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" a écrit dans le
messagede news:Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la
sauvegarded'unefeuille, ça parait en effet beaucoup. Le classeur qui te sert de
'modèle'apeut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardéehérite en partie. Il y a quelque part à cette adresse une page qui
traitedel'amigrissement des fichiers dont tu pourrais peut-être tirer parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardéesle sont au format .xls, pourrais-tu préciser ce qui fait obstacle à
leurmodification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement
dans undossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour 1
feuillec'est beaucoup).
Le code VBA qui fait ce travail, me permet également de récupérer
unefacture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture
rappelée.Trèsgénant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une
factureetd'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture, disons
sousforme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour,
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
Cette ligne permet de donner au fichier texte qui va sauvegarder tes
valeurs un
nom de cette forme :
Valeurs du mercredi 11 février 2004.txt
et le fichier sera créé à la racine du lecteur D. Mais tu peux
parfaitement te
servir de ton numéro de facture pour donner un nom à tes sauvegardes
(l'essentiel étant que ce nom te permette de retrouver facilement la
facture que
tu veux 'rappeler'). Par exemple :
NumFact="2056-1-2004"
FichTxt = "d:Facture " & NumFact & ".txt"
Dans ce cas tu auras en d: un fichier nommé 'Facture 2056-1-2004.txt'.
D'autre part, ton écriture de la variable Plage est tout à fait correcte.
Peu
importe que dans certaines plages toutes les cellules ne contiennent pas
de
données. Le fichier texte stockera (et restituera) des chaînes vides, mais
ça
n'a guère d'importance. La plage que tu souhaites sauvegarder comprend
environ
250 cellules et le fichier qui en résulte, lorsque toutes ces cellules
sont
remplies, pèse moins de 10 Ko (après essai chez moi en remplissant toutes
les
cellules d'une chaîne d'une vingtaine de caractères). Si la moitié ou les
3/4
sont vides, ça ne fera pas grande différence, AMA, sur ton disque dur :)
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour Frédéric, bonjour le Forum,
Là, je suis largué.
Dans Sub ExportDatas()
Je ne comprend pas: FichTxt = "d:Valeurs du " & Format(Now, "dddd dd
mmmm
yyyy") & ".txt"
______________________________________
Ci dessous, les cellules et les plages devant être obligatoirement
sauvées.
N° de facture---------------G9
N° client--------------------B16
Références diverses--------C18:C23
Quantité, Kilo--------------A27:H55 (Dans cette plage, c'est variable,
parfois, il n'y a qu'une ligne remplie, parfois
Désignation, HT, TTC il y en a plusieurs).
Montants HT, TVA, TTC---G58:G60
Nom, Adresse, etc----------F15:F18
Adresse livraison-----------F21
Le "Set Plage" ci-dessous est-il bien rempli?
Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"),
Range("f15:f18"),
Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
__________________________________________
Pour info, le N° de facture ressemble à ceci:
2056-1-2004 (N°-Mois-Année)
__________________________________________
Au départ, j'avais dans l'idée de sauvegarder les données dans une
feuille
de calcul du classeur Facture.
Une ligne par facture.
Par exemple:
Cellule G9 de feuille Facture correspond à colonne A feuille
Sauvegarde.
" B16 " " " " " " B
"
"
Plage C18:C23 " " " " colonnes C, D, E,
F,
G, H feuille Sauvegarde.
etc.......................................
Merci
Jipé
"Frédéric Sigonneau" a écrit dans le
message
de news:Bonjour,
En tout cas, je comprends mieux. Les deux petites macros ci-dessous
pourraientte donner un point de départ, à adapter à tes besoins.
La première exporte dans un fichier texte les valeurs d'un ensemble de
cellules,ajoutées ici une à une dans une variable Plage, mais une plage nommée
regroupantles cellules contenant tes données à sauvegarder peut aussi bien faire
l'affaire(c'est moi qui ne suis pas sûr d'être très clair, là..). Le nom du
fichier
texteest basé sur la date du jour parce que ça peut être un moyen assez
simple
de leretrouver par la suite mais tu as sans doute déjà d'autres moyens de
nommer tessauvegardes. Les données sont écrites dans le fichier texte sous la
forme
adresse de la cellule=valeur de la cellule
(comme dans un fichier .ini)
La deuxième macro va lire le fichier texte pour écrire, dans une
feuille
quipeut avoir été mise en forme auparavant (pourquoi pas un modèle en
effet),
'valeur de la cellule' dans Range('adresse de la cellule'). Elle
nécessite
Excel2000 ou + récent à cause de la fonction Split mais si tu utilises
Excel 97
onpeut adapter.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
'========================== > > > Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") &
".txt"
'**
Set Plage = Union(Range("c6"), Range("c7"), Range("c11"), _
Range("c12"), Range("f6"), Range("f7"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
Sub ImportDatas()
Dim FichTxt, S, Data
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") &
".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
'========================== > > >
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les
donnéesqui sont sauvegardées, il y a aussi la mise en forme et quelques
macros.
Je pense que la mise en forme est en partie responsable du poids
des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les
réintégrer àla demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas
simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" a écrit dans le
messagede news:Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la
sauvegarded'unefeuille, ça parait en effet beaucoup. Le classeur qui te sert de
'modèle'apeut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardéehérite en partie. Il y a quelque part à cette adresse une page qui
traitedel'amigrissement des fichiers dont tu pourrais peut-être tirer
parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardéesle sont au format .xls, pourrais-tu préciser ce qui fait obstacle
à
leurmodification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement
dans undossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour
1
feuillec'est beaucoup).
Le code VBA qui fait ce travail, me permet également de
récupérer
unefacture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture
rappelée.Trèsgénant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une
factureetd'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture,
disons
sousforme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour,
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
Cette ligne permet de donner au fichier texte qui va sauvegarder tes
valeurs un
nom de cette forme :
Valeurs du mercredi 11 février 2004.txt
et le fichier sera créé à la racine du lecteur D. Mais tu peux
parfaitement te
servir de ton numéro de facture pour donner un nom à tes sauvegardes
(l'essentiel étant que ce nom te permette de retrouver facilement la
facture que
tu veux 'rappeler'). Par exemple :
NumFact="2056-1-2004"
FichTxt = "d:Facture " & NumFact & ".txt"
Dans ce cas tu auras en d: un fichier nommé 'Facture 2056-1-2004.txt'.
D'autre part, ton écriture de la variable Plage est tout à fait correcte.
Peu
importe que dans certaines plages toutes les cellules ne contiennent pas
de
données. Le fichier texte stockera (et restituera) des chaînes vides, mais
ça
n'a guère d'importance. La plage que tu souhaites sauvegarder comprend
environ
250 cellules et le fichier qui en résulte, lorsque toutes ces cellules
sont
remplies, pèse moins de 10 Ko (après essai chez moi en remplissant toutes
les
cellules d'une chaîne d'une vingtaine de caractères). Si la moitié ou les
3/4
sont vides, ça ne fera pas grande différence, AMA, sur ton disque dur :)
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour Frédéric, bonjour le Forum,
Là, je suis largué.
Dans Sub ExportDatas()
Je ne comprend pas: FichTxt = "d:Valeurs du " & Format(Now, "dddd dd
mmmm
yyyy") & ".txt"
______________________________________
Ci dessous, les cellules et les plages devant être obligatoirement
sauvées.
N° de facture---------------G9
N° client--------------------B16
Références diverses--------C18:C23
Quantité, Kilo--------------A27:H55 (Dans cette plage, c'est variable,
parfois, il n'y a qu'une ligne remplie, parfois
Désignation, HT, TTC il y en a plusieurs).
Montants HT, TVA, TTC---G58:G60
Nom, Adresse, etc----------F15:F18
Adresse livraison-----------F21
Le "Set Plage" ci-dessous est-il bien rempli?
Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"),
Range("f15:f18"),
Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
__________________________________________
Pour info, le N° de facture ressemble à ceci:
2056-1-2004 (N°-Mois-Année)
__________________________________________
Au départ, j'avais dans l'idée de sauvegarder les données dans une
feuille
de calcul du classeur Facture.
Une ligne par facture.
Par exemple:
Cellule G9 de feuille Facture correspond à colonne A feuille
Sauvegarde.
" B16 " " " " " " B
"
"
Plage C18:C23 " " " " colonnes C, D, E,
F,
G, H feuille Sauvegarde.
etc.......................................
Merci
Jipé
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le
message
de news:40291E9A.48CF9A@wanadoo.fr...
Bonjour,
En tout cas, je comprends mieux. Les deux petites macros ci-dessous
pourraient
te donner un point de départ, à adapter à tes besoins.
La première exporte dans un fichier texte les valeurs d'un ensemble de
cellules,
ajoutées ici une à une dans une variable Plage, mais une plage nommée
regroupant
les cellules contenant tes données à sauvegarder peut aussi bien faire
l'affaire
(c'est moi qui ne suis pas sûr d'être très clair, là..). Le nom du
fichier
texte
est basé sur la date du jour parce que ça peut être un moyen assez
simple
de le
retrouver par la suite mais tu as sans doute déjà d'autres moyens de
nommer tes
sauvegardes. Les données sont écrites dans le fichier texte sous la
forme
adresse de la cellule=valeur de la cellule
(comme dans un fichier .ini)
La deuxième macro va lire le fichier texte pour écrire, dans une
feuille
qui
peut avoir été mise en forme auparavant (pourquoi pas un modèle en
effet),
'valeur de la cellule' dans Range('adresse de la cellule'). Elle
nécessite
Excel
2000 ou + récent à cause de la fonction Split mais si tu utilises
Excel 97
on
peut adapter.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
'========================== > > > Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") &
".txt"
'**
Set Plage = Union(Range("c6"), Range("c7"), Range("c11"), _
Range("c12"), Range("f6"), Range("f7"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
Sub ImportDatas()
Dim FichTxt, S, Data
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") &
".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
'========================== > > >
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les
données
qui sont sauvegardées, il y a aussi la mise en forme et quelques
macros.
Je pense que la mise en forme est en partie responsable du poids
des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les
réintégrer à
la demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas
simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le
message
de news:4026C064.EBCC15E1@wanadoo.fr...
Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la
sauvegarde
d'une
feuille, ça parait en effet beaucoup. Le classeur qui te sert de
'modèle'
a
peut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardée
hérite en partie. Il y a quelque part à cette adresse une page qui
traite
de
l'amigrissement des fichiers dont tu pourrais peut-être tirer
parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardées
le sont au format .xls, pourrais-tu préciser ce qui fait obstacle
à
leur
modification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement
dans un
dossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour
1
feuille
c'est beaucoup).
Le code VBA qui fait ce travail, me permet également de
récupérer
une
facture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture
rappelée.
Très
génant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une
facture
et
d'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture,
disons
sous
forme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Bonjour,
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
Cette ligne permet de donner au fichier texte qui va sauvegarder tes
valeurs un
nom de cette forme :
Valeurs du mercredi 11 février 2004.txt
et le fichier sera créé à la racine du lecteur D. Mais tu peux
parfaitement te
servir de ton numéro de facture pour donner un nom à tes sauvegardes
(l'essentiel étant que ce nom te permette de retrouver facilement la
facture que
tu veux 'rappeler'). Par exemple :
NumFact="2056-1-2004"
FichTxt = "d:Facture " & NumFact & ".txt"
Dans ce cas tu auras en d: un fichier nommé 'Facture 2056-1-2004.txt'.
D'autre part, ton écriture de la variable Plage est tout à fait correcte.
Peu
importe que dans certaines plages toutes les cellules ne contiennent pas
de
données. Le fichier texte stockera (et restituera) des chaînes vides, mais
ça
n'a guère d'importance. La plage que tu souhaites sauvegarder comprend
environ
250 cellules et le fichier qui en résulte, lorsque toutes ces cellules
sont
remplies, pèse moins de 10 Ko (après essai chez moi en remplissant toutes
les
cellules d'une chaîne d'une vingtaine de caractères). Si la moitié ou les
3/4
sont vides, ça ne fera pas grande différence, AMA, sur ton disque dur :)
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour Frédéric, bonjour le Forum,
Là, je suis largué.
Dans Sub ExportDatas()
Je ne comprend pas: FichTxt = "d:Valeurs du " & Format(Now, "dddd dd
mmmm
yyyy") & ".txt"
______________________________________
Ci dessous, les cellules et les plages devant être obligatoirement
sauvées.
N° de facture---------------G9
N° client--------------------B16
Références diverses--------C18:C23
Quantité, Kilo--------------A27:H55 (Dans cette plage, c'est variable,
parfois, il n'y a qu'une ligne remplie, parfois
Désignation, HT, TTC il y en a plusieurs).
Montants HT, TVA, TTC---G58:G60
Nom, Adresse, etc----------F15:F18
Adresse livraison-----------F21
Le "Set Plage" ci-dessous est-il bien rempli?
Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") & ".txt"
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"),
Range("f15:f18"),
Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
__________________________________________
Pour info, le N° de facture ressemble à ceci:
2056-1-2004 (N°-Mois-Année)
__________________________________________
Au départ, j'avais dans l'idée de sauvegarder les données dans une
feuille
de calcul du classeur Facture.
Une ligne par facture.
Par exemple:
Cellule G9 de feuille Facture correspond à colonne A feuille
Sauvegarde.
" B16 " " " " " " B
"
"
Plage C18:C23 " " " " colonnes C, D, E,
F,
G, H feuille Sauvegarde.
etc.......................................
Merci
Jipé
"Frédéric Sigonneau" a écrit dans le
message
de news:Bonjour,
En tout cas, je comprends mieux. Les deux petites macros ci-dessous
pourraientte donner un point de départ, à adapter à tes besoins.
La première exporte dans un fichier texte les valeurs d'un ensemble de
cellules,ajoutées ici une à une dans une variable Plage, mais une plage nommée
regroupantles cellules contenant tes données à sauvegarder peut aussi bien faire
l'affaire(c'est moi qui ne suis pas sûr d'être très clair, là..). Le nom du
fichier
texteest basé sur la date du jour parce que ça peut être un moyen assez
simple
de leretrouver par la suite mais tu as sans doute déjà d'autres moyens de
nommer tessauvegardes. Les données sont écrites dans le fichier texte sous la
forme
adresse de la cellule=valeur de la cellule
(comme dans un fichier .ini)
La deuxième macro va lire le fichier texte pour écrire, dans une
feuille
quipeut avoir été mise en forme auparavant (pourquoi pas un modèle en
effet),
'valeur de la cellule' dans Range('adresse de la cellule'). Elle
nécessite
Excel2000 ou + récent à cause de la fonction Split mais si tu utilises
Excel 97
onpeut adapter.
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
'========================== > > > Sub ExportDatas()
Dim Plage As Range, cell As Range
Dim FichTxt
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") &
".txt"
'**
Set Plage = Union(Range("c6"), Range("c7"), Range("c11"), _
Range("c12"), Range("f6"), Range("f7"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
Sub ImportDatas()
Dim FichTxt, S, Data
FichTxt = "d:Valeurs du " & Format(Now, "dddd dd mmmm yyyy") &
".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
'========================== > > >
Bonjour le Forum,
Mes factures sont bien sauvées au format .xls. Il n'y a pas que les
donnéesqui sont sauvegardées, il y a aussi la mise en forme et quelques
macros.
Je pense que la mise en forme est en partie responsable du poids
des
fichiers sauvés.
D'ou mon intérêt pour sauver les données (format texte), et les
réintégrer àla demande dans une mise en forme (modèle).
C'est pas très clair comme explication, faut dire que c'est pas
simple à
détailler.
Merci
Amicalement
Jipé
"Frédéric Sigonneau" a écrit dans le
messagede news:Bonsoir,
Difficile de t'aider avec ces seuls éléments. 800 ko pour la
sauvegarded'unefeuille, ça parait en effet beaucoup. Le classeur qui te sert de
'modèle'apeut-être pris, au fil du temps, un poids excessif dont la feuille
sauvegardéehérite en partie. Il y a quelque part à cette adresse une page qui
traitedel'amigrissement des fichiers dont tu pourrais peut-être tirer
parti :
http://www.excelabo.net/
Ta deuxième question, j'ai du mal à la comprendre. Si tes factures
sauvegardéesle sont au format .xls, pourrais-tu préciser ce qui fait obstacle
à
leurmodification ?
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour le Forum,
J'utilise un fichier Excel (5 feuilles) pour faire des factures.
Une de ces feuilles (la facture) est sauvegardée automatiquement
dans undossier spécifique.
-----1er problème: Chaque sauvegarde pèse environ 800 Ko. (Pour
1
feuillec'est beaucoup).
Le code VBA qui fait ce travail, me permet également de
récupérer
unefacture sauvegardée.
-----2ème problème: Je ne peux rien modifier sur une facture
rappelée.Trèsgénant car si je me rend compte d'une erreur
juste après la sauvegarde, je suis obligé de refaire une
factureetd'aller supprimer l'autre.
J'ai cru voir un jour, un système de sauvegarde de facture,
disons
sousforme de tableau ou texte, je ne sais plus. (Donc très léger).
Mais je ne trouve rien à ce sujet.
En espérant avoir été clair.
Merci pour votre aide.
Jipé
Je veux bien une explication pour çà:
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Pour que les .txt soient créés dans des répertoires spécifiques au nom des
clients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton aide. Pas
évident.
Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre ce fil).
Jipé
Je veux bien une explication pour çà:
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Pour que les .txt soient créés dans des répertoires spécifiques au nom des
clients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton aide. Pas
évident.
Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre ce fil).
Jipé
Je veux bien une explication pour çà:
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Pour que les .txt soient créés dans des répertoires spécifiques au nom des
clients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton aide. Pas
évident.
Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre ce fil).
Jipé
Re-re,Je veux bien une explication pour çà:
Open FichTxt For Output As 1
-> on ouvre (ça le crée s'il n'existe pas, ça écrase un existant) FichTxt
pour
écrire dedansFor Each cell In Plage
-> on passe en revue toutes les cellules stockées dans la variable PlagePrint #1, cell.Address & "=" & cell.Text
on écrit dans le fichier texte l'adresse de chaque cellule et son contenu.
Ça
donne des entrées du style :
$G$9=zazaPour que les .txt soient créés dans des répertoires spécifiques au nom
des
clients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton aide.
Pas
évident.
Essaye plutôt avec ces modifs :
'====================== > Sub ExportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim Plage As Range, cell As Range, FichTxt$
NumFact = Range("G9").Value
Nom_Client = Range("F15").Value
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
'attention : ce test (comme le précedent)
'suppose que C:Mes Factures existe
If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), _
Range("f15:f18"), Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
'====================== >
Ça devrait fonctionner comme tu le souhaites pour la sauvegarde. Reste à
tester
la récupération.Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre ce
fil).
Pas sûr :)Jipé
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Re-re,
Je veux bien une explication pour çà:
Open FichTxt For Output As 1
-> on ouvre (ça le crée s'il n'existe pas, ça écrase un existant) FichTxt
pour
écrire dedans
For Each cell In Plage
-> on passe en revue toutes les cellules stockées dans la variable Plage
Print #1, cell.Address & "=" & cell.Text
on écrit dans le fichier texte l'adresse de chaque cellule et son contenu.
Ça
donne des entrées du style :
$G$9=zaza
Pour que les .txt soient créés dans des répertoires spécifiques au nom
des
clients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton aide.
Pas
évident.
Essaye plutôt avec ces modifs :
'====================== > Sub ExportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim Plage As Range, cell As Range, FichTxt$
NumFact = Range("G9").Value
Nom_Client = Range("F15").Value
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
'attention : ce test (comme le précedent)
'suppose que C:Mes Factures existe
If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), _
Range("f15:f18"), Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
'====================== >
Ça devrait fonctionner comme tu le souhaites pour la sauvegarde. Reste à
tester
la récupération.
Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre ce
fil).
Pas sûr :)
Jipé
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Re-re,Je veux bien une explication pour çà:
Open FichTxt For Output As 1
-> on ouvre (ça le crée s'il n'existe pas, ça écrase un existant) FichTxt
pour
écrire dedansFor Each cell In Plage
-> on passe en revue toutes les cellules stockées dans la variable PlagePrint #1, cell.Address & "=" & cell.Text
on écrit dans le fichier texte l'adresse de chaque cellule et son contenu.
Ça
donne des entrées du style :
$G$9=zazaPour que les .txt soient créés dans des répertoires spécifiques au nom
des
clients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton aide.
Pas
évident.
Essaye plutôt avec ces modifs :
'====================== > Sub ExportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim Plage As Range, cell As Range, FichTxt$
NumFact = Range("G9").Value
Nom_Client = Range("F15").Value
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
'attention : ce test (comme le précedent)
'suppose que C:Mes Factures existe
If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), _
Range("f15:f18"), Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
'====================== >
Ça devrait fonctionner comme tu le souhaites pour la sauvegarde. Reste à
tester
la récupération.Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre ce
fil).
Pas sûr :)Jipé
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Re.........
Ta macro retouchée fonctionne parfaitement. Création des rep, sauvegarde des
.txt,
écrasement d'un fichier existant avec prise en compte des modifs.
Poids moyen d'une facture : 8ko C'est le pied.
Comme tu dois t'en douter, Frédéric, j'ai un souci avec la récupération.
Message d'erreur 53. Trouve pas le fichier.
Le débuggeur surligne "Open FichTxt For Input As 1"
Sub ImportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim FichTxt, S, Data
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
Merci pour tes explications. Ca m'aide beaucoup.
Bonne nuit Jipé
"Frédéric Sigonneau" a écrit dans le message
de news:Re-re,Je veux bien une explication pour çà:
Open FichTxt For Output As 1
-> on ouvre (ça le crée s'il n'existe pas, ça écrase un existant) FichTxt
pourécrire dedansFor Each cell In Plage
-> on passe en revue toutes les cellules stockées dans la variable PlagePrint #1, cell.Address & "=" & cell.Text
on écrit dans le fichier texte l'adresse de chaque cellule et son contenu.
Çadonne des entrées du style :
$G$9=zazaPour que les .txt soient créés dans des répertoires spécifiques au nom
desclients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton aide.
Pasévident.
Essaye plutôt avec ces modifs :
'====================== > > Sub ExportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim Plage As Range, cell As Range, FichTxt$
NumFact = Range("G9").Value
Nom_Client = Range("F15").Value
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
'attention : ce test (comme le précedent)
'suppose que C:Mes Factures existe
If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), _
Range("f15:f18"), Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
'====================== > >
Ça devrait fonctionner comme tu le souhaites pour la sauvegarde. Reste à
testerla récupération.Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre ce
fil).
Pas sûr :)Jipé
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Re.........
Ta macro retouchée fonctionne parfaitement. Création des rep, sauvegarde des
.txt,
écrasement d'un fichier existant avec prise en compte des modifs.
Poids moyen d'une facture : 8ko C'est le pied.
Comme tu dois t'en douter, Frédéric, j'ai un souci avec la récupération.
Message d'erreur 53. Trouve pas le fichier.
Le débuggeur surligne "Open FichTxt For Input As 1"
Sub ImportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim FichTxt, S, Data
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
Merci pour tes explications. Ca m'aide beaucoup.
Bonne nuit Jipé
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le message
de news:402A90EF.FB7A4258@wanadoo.fr...
Re-re,
Je veux bien une explication pour çà:
Open FichTxt For Output As 1
-> on ouvre (ça le crée s'il n'existe pas, ça écrase un existant) FichTxt
pour
écrire dedans
For Each cell In Plage
-> on passe en revue toutes les cellules stockées dans la variable Plage
Print #1, cell.Address & "=" & cell.Text
on écrit dans le fichier texte l'adresse de chaque cellule et son contenu.
Ça
donne des entrées du style :
$G$9=zaza
Pour que les .txt soient créés dans des répertoires spécifiques au nom
des
clients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton aide.
Pas
évident.
Essaye plutôt avec ces modifs :
'====================== > > Sub ExportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim Plage As Range, cell As Range, FichTxt$
NumFact = Range("G9").Value
Nom_Client = Range("F15").Value
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
'attention : ce test (comme le précedent)
'suppose que C:Mes Factures existe
If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), _
Range("f15:f18"), Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
'====================== > >
Ça devrait fonctionner comme tu le souhaites pour la sauvegarde. Reste à
tester
la récupération.
Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre ce
fil).
Pas sûr :)
Jipé
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Re.........
Ta macro retouchée fonctionne parfaitement. Création des rep, sauvegarde des
.txt,
écrasement d'un fichier existant avec prise en compte des modifs.
Poids moyen d'une facture : 8ko C'est le pied.
Comme tu dois t'en douter, Frédéric, j'ai un souci avec la récupération.
Message d'erreur 53. Trouve pas le fichier.
Le débuggeur surligne "Open FichTxt For Input As 1"
Sub ImportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim FichTxt, S, Data
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
Merci pour tes explications. Ca m'aide beaucoup.
Bonne nuit Jipé
"Frédéric Sigonneau" a écrit dans le message
de news:Re-re,Je veux bien une explication pour çà:
Open FichTxt For Output As 1
-> on ouvre (ça le crée s'il n'existe pas, ça écrase un existant) FichTxt
pourécrire dedansFor Each cell In Plage
-> on passe en revue toutes les cellules stockées dans la variable PlagePrint #1, cell.Address & "=" & cell.Text
on écrit dans le fichier texte l'adresse de chaque cellule et son contenu.
Çadonne des entrées du style :
$G$9=zazaPour que les .txt soient créés dans des répertoires spécifiques au nom
desclients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton aide.
Pasévident.
Essaye plutôt avec ces modifs :
'====================== > > Sub ExportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim Plage As Range, cell As Range, FichTxt$
NumFact = Range("G9").Value
Nom_Client = Range("F15").Value
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
'attention : ce test (comme le précedent)
'suppose que C:Mes Factures existe
If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), _
Range("f15:f18"), Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
'====================== > >
Ça devrait fonctionner comme tu le souhaites pour la sauvegarde. Reste à
testerla récupération.Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre ce
fil).
Pas sûr :)Jipé
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Rerere,
Nom_Client n'est pas renseigné dans la macro ImportDatas, NumFact non
plus. Du
coup la variable FichTxt ne contient pas une séquence chemin/nom de
fichier
valide, et l'instruction Open FichTxt provoque une erreur.
Un moyen simple de récupérer ces infos est d'aller les chercher avec la
boite de
dialogue Ouvrir d'Excel, qui renvoie le nom et chemin complet du fichier
sélectionné sans l'ouvrir réellement. Par exemple :
Sub ImportDatas()
Dim FichTxt, S, Data
ChDrive "C"
ChDir "C:Mes Factures"
FichTxt = Application.GetOpenFilename("Fichiers texte (*.txt), *.txt")
If FichTxt = False Then Exit Sub
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Re.........
Ta macro retouchée fonctionne parfaitement. Création des rep, sauvegarde
des
.txt,
écrasement d'un fichier existant avec prise en compte des modifs.
Poids moyen d'une facture : 8ko C'est le pied.
Comme tu dois t'en douter, Frédéric, j'ai un souci avec la récupération.
Message d'erreur 53. Trouve pas le fichier.
Le débuggeur surligne "Open FichTxt For Input As 1"
Sub ImportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim FichTxt, S, Data
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
Merci pour tes explications. Ca m'aide beaucoup.
Bonne nuit Jipé
"Frédéric Sigonneau" a écrit dans le
message
de news:Re-re,Je veux bien une explication pour çà:
Open FichTxt For Output As 1
-> on ouvre (ça le crée s'il n'existe pas, ça écrase un existant)
FichTxt
pourécrire dedansFor Each cell In Plage
-> on passe en revue toutes les cellules stockées dans la variable
Plage
Print #1, cell.Address & "=" & cell.Text
on écrit dans le fichier texte l'adresse de chaque cellule et son
contenu.
Çadonne des entrées du style :
$G$9=zazaPour que les .txt soient créés dans des répertoires spécifiques au
nom
desclients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton
aide.
Pasévident.
Essaye plutôt avec ces modifs :
'====================== > > > Sub ExportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim Plage As Range, cell As Range, FichTxt$
NumFact = Range("G9").Value
Nom_Client = Range("F15").Value
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
'attention : ce test (comme le précedent)
'suppose que C:Mes Factures existe
If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), _
Range("f15:f18"), Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
'====================== > > >
Ça devrait fonctionner comme tu le souhaites pour la sauvegarde. Reste
à
testerla récupération.Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre
ce
fil).
Pas sûr :)Jipé
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Rerere,
Nom_Client n'est pas renseigné dans la macro ImportDatas, NumFact non
plus. Du
coup la variable FichTxt ne contient pas une séquence chemin/nom de
fichier
valide, et l'instruction Open FichTxt provoque une erreur.
Un moyen simple de récupérer ces infos est d'aller les chercher avec la
boite de
dialogue Ouvrir d'Excel, qui renvoie le nom et chemin complet du fichier
sélectionné sans l'ouvrir réellement. Par exemple :
Sub ImportDatas()
Dim FichTxt, S, Data
ChDrive "C"
ChDir "C:Mes Factures"
FichTxt = Application.GetOpenFilename("Fichiers texte (*.txt), *.txt")
If FichTxt = False Then Exit Sub
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Re.........
Ta macro retouchée fonctionne parfaitement. Création des rep, sauvegarde
des
.txt,
écrasement d'un fichier existant avec prise en compte des modifs.
Poids moyen d'une facture : 8ko C'est le pied.
Comme tu dois t'en douter, Frédéric, j'ai un souci avec la récupération.
Message d'erreur 53. Trouve pas le fichier.
Le débuggeur surligne "Open FichTxt For Input As 1"
Sub ImportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim FichTxt, S, Data
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
Merci pour tes explications. Ca m'aide beaucoup.
Bonne nuit Jipé
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le
message
de news:402A90EF.FB7A4258@wanadoo.fr...
Re-re,
Je veux bien une explication pour çà:
Open FichTxt For Output As 1
-> on ouvre (ça le crée s'il n'existe pas, ça écrase un existant)
FichTxt
pour
écrire dedans
For Each cell In Plage
-> on passe en revue toutes les cellules stockées dans la variable
Plage
Print #1, cell.Address & "=" & cell.Text
on écrit dans le fichier texte l'adresse de chaque cellule et son
contenu.
Ça
donne des entrées du style :
$G$9=zaza
Pour que les .txt soient créés dans des répertoires spécifiques au
nom
des
clients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton
aide.
Pas
évident.
Essaye plutôt avec ces modifs :
'====================== > > > Sub ExportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim Plage As Range, cell As Range, FichTxt$
NumFact = Range("G9").Value
Nom_Client = Range("F15").Value
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
'attention : ce test (comme le précedent)
'suppose que C:Mes Factures existe
If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), _
Range("f15:f18"), Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
'====================== > > >
Ça devrait fonctionner comme tu le souhaites pour la sauvegarde. Reste
à
tester
la récupération.
Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre
ce
fil).
Pas sûr :)
Jipé
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Rerere,
Nom_Client n'est pas renseigné dans la macro ImportDatas, NumFact non
plus. Du
coup la variable FichTxt ne contient pas une séquence chemin/nom de
fichier
valide, et l'instruction Open FichTxt provoque une erreur.
Un moyen simple de récupérer ces infos est d'aller les chercher avec la
boite de
dialogue Ouvrir d'Excel, qui renvoie le nom et chemin complet du fichier
sélectionné sans l'ouvrir réellement. Par exemple :
Sub ImportDatas()
Dim FichTxt, S, Data
ChDrive "C"
ChDir "C:Mes Factures"
FichTxt = Application.GetOpenFilename("Fichiers texte (*.txt), *.txt")
If FichTxt = False Then Exit Sub
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Re.........
Ta macro retouchée fonctionne parfaitement. Création des rep, sauvegarde
des
.txt,
écrasement d'un fichier existant avec prise en compte des modifs.
Poids moyen d'une facture : 8ko C'est le pied.
Comme tu dois t'en douter, Frédéric, j'ai un souci avec la récupération.
Message d'erreur 53. Trouve pas le fichier.
Le débuggeur surligne "Open FichTxt For Input As 1"
Sub ImportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim FichTxt, S, Data
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
Open FichTxt For Input As 1
While Not EOF(1)
Line Input #1, S
Data = Split(S, "=")(1)
If IsDate(Split(S, "=")(1)) Then Data = CDate(Data)
Range(Split(S, "=")(0)).Value = Data
Wend
Close
End Sub 'fs
Merci pour tes explications. Ca m'aide beaucoup.
Bonne nuit Jipé
"Frédéric Sigonneau" a écrit dans le
message
de news:Re-re,Je veux bien une explication pour çà:
Open FichTxt For Output As 1
-> on ouvre (ça le crée s'il n'existe pas, ça écrase un existant)
FichTxt
pourécrire dedansFor Each cell In Plage
-> on passe en revue toutes les cellules stockées dans la variable
Plage
Print #1, cell.Address & "=" & cell.Text
on écrit dans le fichier texte l'adresse de chaque cellule et son
contenu.
Çadonne des entrées du style :
$G$9=zazaPour que les .txt soient créés dans des répertoires spécifiques au
nom
desclients dans C:Mes factures,
puis-je utiliser le code ci-dessous?
J'ai essayé d'inclure ton code, au code que j'utilisais avant ton
aide.
Pasévident.
Essaye plutôt avec ces modifs :
'====================== > > > Sub ExportDatas()
Dim Nom_Client$, NumFact$, Rangement$
Dim Plage As Range, cell As Range, FichTxt$
NumFact = Range("G9").Value
Nom_Client = Range("F15").Value
Rangement = "C:Mes factures" & Nom_Client & ""
FichTxt = Rangement & NumFact & ".txt"
'attention : ce test (comme le précedent)
'suppose que C:Mes Factures existe
If Dir(Rangement, vbDirectory) = "" Then MkDir Rangement
'**
Set Plage = Union(Range("g9"), Range("b16"), Range("c18:c23"), _
Range("a27:h55"), Range("g58:g60"), _
Range("f15:f18"), Range("f21"))
'**(tu peux aussi nommer la plage des données à sauvegarder)
Open FichTxt For Output As 1
For Each cell In Plage
Print #1, cell.Address & "=" & cell.Text
Next
Close
End Sub
'====================== > > >
Ça devrait fonctionner comme tu le souhaites pour la sauvegarde. Reste
à
testerla récupération.Merci pour ton aide Frédéric. (Je pense que tu es le seul à suivre
ce
fil).
Pas sûr :)Jipé
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !