Macro : nommer l'enregistrement selon plusieurs cell variable
Résolu
stitchbouck
Messages postés
135
Date d'inscription
Statut
Membre
Dernière intervention
-
stitchbouck Messages postés 135 Date d'inscription Statut Membre Dernière intervention -
stitchbouck Messages postés 135 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai bien tenter de trouver une approche similaire sur les forums mais soit il y a trop de topic et je ne l'ai pas vu, soit ce problème n'a pas été traité. :)
Alors voilà : VBA, Excel 2013.
j'ai une macro qui fait des fiches au format pdf en reprenant certaines informations de l'onglet "info litige", pour les copier dans l'onglet "demande d'enlèvement". De là, il génère le pdf en prenant en compte ce qu'il y a dans "demande d'enlèvement".
Cette fiche peut comporter plusieurs lignes d'anomalie, chacune avec un n° d'anomalie propre à sa ligne.
Ce format PDF porte le nom de plusieurs cellule (date, fournisseur et n° d'anomalie) lorsqu'il s'enregistre :
ça fonctionne super !!
je souhaite néanmoins l'améliorer en adaptant cette macro pour qu'elle nomme avec tous les numéros d'anomalie et pas seulement celle en cell 12,7.
Il faudrait, lorsque l'info est disponible, qu'elle nomme aussi avec le n° en cell (13 , 7), cell (14 , 7) etc... jusqu'à la prochaine cellule vide de cette même colonne 7.
La ligne 12 est toujours pleine. Ce qui varie, ce sont les lignes suivantes. il peut aussi bien y avoir 1 seule ligne (et donc 1 seul n° d'anomalie) que 10 lignes ou plus.
En prime... j'aimerai comprendre la macro. je débute, je galère, mais je m'accroche et j'ai besoin de comprendre ce que je fais et pourquoi... et là je patauge pas mal, j'admets mon ignorance :)
J'espère que l'explication de mon cas est clair... lol
D'avance, merci infiniment pour le temps que vous consacrer à aider les autres.
J'ai bien tenter de trouver une approche similaire sur les forums mais soit il y a trop de topic et je ne l'ai pas vu, soit ce problème n'a pas été traité. :)
Alors voilà : VBA, Excel 2013.
j'ai une macro qui fait des fiches au format pdf en reprenant certaines informations de l'onglet "info litige", pour les copier dans l'onglet "demande d'enlèvement". De là, il génère le pdf en prenant en compte ce qu'il y a dans "demande d'enlèvement".
Cette fiche peut comporter plusieurs lignes d'anomalie, chacune avec un n° d'anomalie propre à sa ligne.
Ce format PDF porte le nom de plusieurs cellule (date, fournisseur et n° d'anomalie) lorsqu'il s'enregistre :
'Nom à donner au fichier
Dim Nom As String
Nom = Sheets("Demande d'enlèvement").Cells(7, 2).Text & " " & Sheets("Demande d'enlèvement").Cells(6, 6).Text & " " & Sheets("Demande d'enlèvement").Cells(12, 7).Text & ".pdf"
ça fonctionne super !!
je souhaite néanmoins l'améliorer en adaptant cette macro pour qu'elle nomme avec tous les numéros d'anomalie et pas seulement celle en cell 12,7.
Il faudrait, lorsque l'info est disponible, qu'elle nomme aussi avec le n° en cell (13 , 7), cell (14 , 7) etc... jusqu'à la prochaine cellule vide de cette même colonne 7.
La ligne 12 est toujours pleine. Ce qui varie, ce sont les lignes suivantes. il peut aussi bien y avoir 1 seule ligne (et donc 1 seul n° d'anomalie) que 10 lignes ou plus.
En prime... j'aimerai comprendre la macro. je débute, je galère, mais je m'accroche et j'ai besoin de comprendre ce que je fais et pourquoi... et là je patauge pas mal, j'admets mon ignorance :)
J'espère que l'explication de mon cas est clair... lol
D'avance, merci infiniment pour le temps que vous consacrer à aider les autres.
A voir également:
- Macro : nommer l'enregistrement selon plusieurs cell variable
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
2 réponses
Bonjour
Essaie ainsi :
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
Essaie ainsi :
'Nom à donner au fichier Dim DLig As Long, Nom As String, anomalie as String 'n° de anomalie récupéré en G12 anomalie = Sheets("Demande d'enlèvement").Range("G12").Text ' si G13 n'est pas vide If Sheets("Demande d'enlèvement").Range("G13") <> "" Then ' alors ' dernière ligne remplie en dessous de G12 DLig = Sheets("Demande d'enlèvement").Range("G12").End(xlDown).Row ' Boucle sur les lignes depuis 13 jusqu'à dernière remplie For n = 13 To DLig ' ajoute dans anomalie la valeur de la cellule aux précédentes séparée par un tiret anomalie = anomalie & "-" & Sheets("Demande d'enlèvement").Range("G" & n).Text Next End If 'établissement du nom à donner Nom = Sheets("Demande d'enlèvement").Cells(7, 2).Text & " " & Sheets("Demande d'enlèvement").Cells(6, 6).Text & " " & anomalie & ".pdf"
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein