• Initiateur de la discussion Initiateur de la discussion Thierry51170
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

Thierry51170

Guest
Bonjour à tous,
je suis novice en macro, je dois finaliser cette macro le transfert pour la sauvegarde se passe bien mais la feuille du premier classeur ne se vide pas quand le nouveau numéro incrémenté est changé.
si vous avez une idée 🙂
je vous joint mes deux fichier:
le 1 fichier se nomme : commande
le 2 fichier se nomme : modèlemensuel
merci d'avance
 

Pièces jointes

Re

C'est bien ce que je disais
Si tu testes, tu te rends compte que ZoneSaisie n'englobe pas toutes les cellules jaunes.
MsgBox [ZoneSaisie].Address
Par contre là on a toutes les cellules jaunes
MsgBox Range("E4,B11:B13,A11:B16,D11:G16,E18,A19,A25:G50").Address
Donc tu pourrais écrire pour effacer
Range("E4,B11:B13,A11:B16,D11:G16,E18,A19,A25:G50")=Empty
 
Bonjour JM,
Je te remercie cela fonctionne à merveille, peux tu me dire également pour le bouton pour le faire disparaître dans la copie de sauvegarde.
pour information les données du 1 classeur " commande "sont sauvegardées sur le 2 classeur "modèlemensuel".
avec une incrémentation automatique de la date .
bien cordialement
 
Bonsoir à tous

Si j'étais moi, j'enregistrerai la facture en PDF
(comme cela théoriquement le bouton disparaît, non ?)

EDITION: Je viens de tester
VB:
Sub Export_PDF()
Dim strPath$, Fichier$
strPath = ThisWorkbook.Path & "\"
Fichier = "Commande-" & Format(Now(), "mmmyy") & ".pdf"
Range("A1:G56").ExportAsFixedFormat 0, strPath & Fichier, 1
End Sub

Le bouton a bien disparu
 
Dernière édition:
Bonjour JM,
merci pour le retour, cela est intéressant, mais je dois conservé une copie exact également avec un récapitulatif .
j'ai mis en place le code pour l’effacement des cases qui doivent se vider cela fonctionne à merveille, encore merci.
un autre problème se pose quand je place les deux fichiers sur un disque partagé j'ai une erreur " voir fichier joint "
merci encore pour ton aide je remets le fichier 1 avec mes codes mis à jour .
bien cordialement
 

Pièces jointes

  • fichier 1.xls
    fichier 1.xls
    50.5 KB · Affichages: 36
  • erreur sur serveur.PNG
    erreur sur serveur.PNG
    22.4 KB · Affichages: 31
Bonsoir à tous

Thierry51170
Si j'étais de nouveau moi, je resumerai ta macro ainsi
VB:
Sub a()
Dim strPath$, Fichier$, f As Worksheet, t
'export de la commande en PDF
strPath = ThisWorkbook.Path & "\"
Fichier = "Commande-" & Format(Now(), "mmmyy") & ".pdf"
Set f = Sheets("commande")
f.Range("A1:G56").ExportAsFixedFormat 0, strPath & Fichier, 1
'on exporte la commande validée dans le classeur mensuel
t = Array(f.[E8].Value2, f.[E2].Text, f.[D19].Text, f.[E4].Text, f.[D11].Text)
Workbooks("2 fichier.xlsm").Sheets("récap").Cells(Rows.Count, 1).End(xlUp)(2).Resize(, 5).Value = t
Workbooks("2 fichier.xlsm").Close True
'RAZ de la commande
f.Range("E4,B11:B13,A11,D11,D19,A19,A22,A25:G50") = Empty
End Sub
 
Bonsoir JM,
je te remercie pour le retour, mais je fais tellement de modification que je ne m'y retrouve plus.
je ne sais même plus quelle MACRO finale est bonne.

je suis perdu

est il possible d'avoir une solution finale de ta part.

Bien cordialement
 
Re

Ma macro n'a rien de finale, c'est juste une suggestion 😉
Pour la tester, ouvres fichier 1 et fichier 2 en même temps.
(je parle des deux fichiers du message#1)
Mets ma dernière macro dans le fichier qui contient la feuille commande.
Remplis une commande puis lance la macro
Normalement tu dois alors avoir une copie de la commande en PDF
puis les données de la commande sont copiées dans la feuille récap.
 
Bonjour JM,
merci pour ce retour, j'ai placé ta macro dans les dossiers concernés, elle fonctionne bien , concernant le fichier PDF il me garde unique la dernière commande passée et les autres sont effacées,
est il normal que je dois ouvrir les deux fichiers et que je dois activer activé les 2 macros ensembles .
le bouton validation me rapporte le message " capture " et lorsque je teste la macro il me dis le message " capture 2 ".
encore merci pour ton aide
bien cordialement
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    11.9 KB · Affichages: 22
  • Capture 2.PNG
    Capture 2.PNG
    22.6 KB · Affichages: 37
Bonjour à tous

Thierry51170
Comme je l'ai dit, j'ai testé ma dernière macro avec les fichiers que tu as déposé dans le message #1
Mode opératoire
1) tu remplis manuellement la feuille nommée "Commande"
2) Si tu lances la macro, il doit se passer ceci
•La feuille commande est enregistrée au format PDF avec ce nom : Commande-oct16.pdf
(donc il faudrait changer le nom, car tel quel tu ne peux enregistrer qu'un commande par mois)
•Les données "utiles" de la feuille commande sont copiées dans la première ligne de la feuille "récap" du second fichier
• La feuille commande est remise à zéro.
Ci-dessous macro modifiée et commentaires ajoutés
(la macro doit être dans le fichier 1 ou son équivalent "réel")
(il faut vérifier que les noms des classeurs et des feuilles soient indiques dans les classeurs et dans la macro, sinon il y aura bug)

VB:
Sub b()
Dim strPath$, Fichier$, f As Worksheet, t, NumFact
NumFact = [codes!A2]
'export de la commande en PDF
strPath = ThisWorkbook.Path & "\"
Fichier = "Commande-" & NumFact & "-" & Format(Now(), "mmmyy") & ".pdf"
Set f = Sheets("commande")
f.Range("A1:G56").ExportAsFixedFormat 0, strPath & Fichier, 1
'on exporte la commande validée dans le classeur mensuel
'dans cette ligne,mettre les adresses des "bonnes" cellules
t = Array(f.[F8].Value2, f.[E2].Text, f.[D19].Text, f.[E4].Text, f.[D11].Text)
'remplacer si besoin 2 fichier.xlsm par le nom du vrai classeur (dans les duex lignes ci-dessous
'ce classeur doit être ouvert
Workbooks("2 fichier.xlsm").Sheets("récap").Cells(Rows.Count, 1).End(xlUp)(2).Resize(, 5).Value = t
Workbooks("2 fichier.xlsm").Close True
'RAZ de la commande
'vérfier que ce sont les bonnes adresses des cellules à effacer
f.Range("E4,B11:B13,A11,D11,D19,A19,A22,A25:G50") = Empty
'ici on incrémente le compteur
Sheets("codes").[A2] = Sheets("codes").[A2] + 1
End Sub


NB: Encore une fois, ma macro n'est qu'une suggestion, une piste à suivre ou pas; mais en aucun une solution finalisée apte à remplacer le code initial de Misange (auteur de ton classeur, et membre du forum qui se fait rare sur celui-ci)
 
Dernière édition:
Bonjour JM,
Merci pour ce retour, j'ai apporté quelque modification afin de pouvoir conservé la commande exel sur le 2 fichier ainsi que d'en avoir une copie en PDF avec toutes les commandes, mais le problème cela me fait bien les sauvegardes en PDF mais avec une incrémentation du numéro de faction non faite encore.
de plus j'ai un décalage dans la sauvegarde dans la feuille nommé " récap"
encore merci de ton aide et des propositions que tu m'apporte afin de pouvoir avancé un peu plus dans le BVA
ci joint les deux fichiers pour test
Bien cordialement
 

Pièces jointes

Re à tous

Bien lire tous les commentaires en vert dans la macro.
Notamment ceci, pour cette histoire de décalage.
'on exporte la commande validée dans le classeur mensuel
'dans cette ligne,mettre les adresses des "bonnes" cellules

Sinon j'ai plus l'impression que ma suggestion t'embrouille plutôt qu'autre chose, non ?

Pour éviter cela, tu devrais repréciser de A à Z ce que doit faire ta macro
(ne sois pas avare de détails)
Tout ce que fait ma macro pour le moment se résume en gros à:
1) enregistrer la feuille commande en PDF
2) copier certaines cellules de la feuille commande dans la feuille récap
3) effacer certaines cellules de la feuille commande
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
141
Réponses
12
Affichages
402
Retour