Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Amélioration de macro

5 réponses
Avatar
Sou PULL
Bonsoir j'utilise actuellement la macro ci-dessous pour procéder à la
copie d'une plage de cellule dans un nouveau classeur, que se classeur
soit nommé automatiquement selon un texte saisie dans la macro, et ce
classeur nouvellement crée est envoyé ensuite par mail.
Je souhaiterai que la valeur qui s'appelle actuellement "nomduvendeur"
soit créer automatiquement en faisant référence à une cellule de la
feuille dont est issus la copie (tout le monde à suivi....?)

Donc en gros à la place de nom du venderu je veux la valeur de la cellule S1

et à la place de report_nomduvendeur.xls je voudrais report_S1.xls

Est-ce possible ?

Sub envoi()
'
Dim CtrLigne As Long
Range("H5:W5").Select
CtrLigne = Range("W5").End(xlDown).Row - 4
Range(Selection, Range("W5").End(xlDown)).Select
Selection.Copy
Workbooks.Add
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats,
Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
For i = 1 To CtrLigne
Cells(i, 1) = "nomduvendeur" 'ici je voudrais la valeur de la
cellule S1 a la place d'un texte saisie.
Next i
ChDir "C:\Reporting"
ActiveWorkbook.SaveAs Filename:="C:\Reporting\report_vendeur.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.Dialogs(xlDialogSendMail).Show
ActiveWorkbook.Close
Range("H5").Select
End Sub

Merci d'avance....

Soupull

5 réponses

Avatar
michdenis
Bonjour Sou Pull,

For i = 1 To CtrLigne
Cells(i, 1) = "nomduvendeur"
'ici je voudrais la valeur de la cellule S1 a la place d'un texte saisie.
Next i

Les cellules : Cells(i,1) appartiennent à quel classeur ? le fichier source où
celui que la procédure a ajoutée ?

La liste des "nomduvendeur" se retrouve dans quelle plage de cellules de quelle feuille et de quel classeur ?


Salutations!





"Sou PULL" a écrit dans le message de news:
Bonsoir j'utilise actuellement la macro ci-dessous pour procéder à la
copie d'une plage de cellule dans un nouveau classeur, que se classeur
soit nommé automatiquement selon un texte saisie dans la macro, et ce
classeur nouvellement crée est envoyé ensuite par mail.
Je souhaiterai que la valeur qui s'appelle actuellement "nomduvendeur"
soit créer automatiquement en faisant référence à une cellule de la
feuille dont est issus la copie (tout le monde à suivi....?)

Donc en gros à la place de nom du venderu je veux la valeur de la cellule S1

et à la place de report_nomduvendeur.xls je voudrais report_S1.xls

Est-ce possible ?

Sub envoi()
'
Dim CtrLigne As Long
Range("H5:W5").Select
CtrLigne = Range("W5").End(xlDown).Row - 4
Range(Selection, Range("W5").End(xlDown)).Select
Selection.Copy
Workbooks.Add
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats,
Operation:= _
xlNone, SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
For i = 1 To CtrLigne
Cells(i, 1) = "nomduvendeur" 'ici je voudrais la valeur de la
cellule S1 a la place d'un texte saisie.
Next i
ChDir "C:Reporting"
ActiveWorkbook.SaveAs Filename:="C:Reportingreport_vendeur.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
Application.Dialogs(xlDialogSendMail).Show
ActiveWorkbook.Close
Range("H5").Select
End Sub

Merci d'avance....

Soupull
Avatar
lSteph
Bonsoir,
à priori...

Cells(i, 1) = Workbooks("dorigine").Worksheets("lafeuille").[S1]

'lSteph
"Sou PULL" a écrit dans le message de news:

Bonsoir j'utilise actuellement la macro ci-dessous pour procéder à la
copie d'une plage de cellule dans un nouveau classeur, que se classeur
soit nommé automatiquement selon un texte saisie dans la macro, et ce
classeur nouvellement crée est envoyé ensuite par mail.
Je souhaiterai que la valeur qui s'appelle actuellement "nomduvendeur"
soit créer automatiquement en faisant référence à une cellule de la
feuille dont est issus la copie (tout le monde à suivi....?)

Donc en gros à la place de nom du venderu je veux la valeur de la cellule
S1

et à la place de report_nomduvendeur.xls je voudrais report_S1.xls

Est-ce possible ?

Sub envoi()
'
Dim CtrLigne As Long
Range("H5:W5").Select
CtrLigne = Range("W5").End(xlDown).Row - 4
Range(Selection, Range("W5").End(xlDown)).Select
Selection.Copy
Workbooks.Add
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats,
Operation:= _
xlNone, SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
For i = 1 To CtrLigne
Cells(i, 1) = "nomduvendeur" 'ici je voudrais la valeur de la
cellule S1 a la place d'un texte saisie.
Next i
ChDir "C:Reporting"
ActiveWorkbook.SaveAs Filename:="C:Reportingreport_vendeur.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse
Application.Dialogs(xlDialogSendMail).Show
ActiveWorkbook.Close
Range("H5").Select
End Sub

Merci d'avance....

Soupull


Avatar
Sou PULL
Bonjour Sou Pull,

For i = 1 To CtrLigne
Cells(i, 1) = "nomduvendeur"
'ici je voudrais la valeur de la cellule S1 a la place d'un texte saisie.
Next i

Les cellules : Cells(i,1) appartiennent à quel classeur ? le fichier source où
celui que la procédure a ajoutée ?


Elles appartiennent au fichier source.
La macro crée actuellement en A1 le texte "Nomduvendeur" pour chaque
ligne contenant des données. Mais à chaque modif' de mon tableau je dois
me taper 7 enregistrer sous différents et 7 modif de macro, pour mettre
à jour le nom de chaque vendeur.


La liste des "nomduvendeur" se retrouve dans quelle plage de cellules de quelle feuille et de quel classeur ?


Ce n'est pas une liste mais simplement une cellule, la "S1" dans lequel
le vendeur saisie son prénom

Cordialement,

SOupull

Avatar
Sou PULL
Merci, cela fonctionne...en partie car l'autre soucis que j'ai c'est que
lors de l'enregistrement du classeur je souhaiterais que le classeur
s'enregistre avec un nom ayant la forme report_"nomduvendeur".xls , cf
extrait de code ci-dessous :

Cordialement,

Soupull


Bonsoir,
à priori...

Cells(i, 1) = Workbooks("dorigine").Worksheets("lafeuille").[S1]

ChDir "C:Reporting"
ActiveWorkbook.SaveAs Filename:="C:Reportingreport_vendeur.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse




Avatar
lSteph
ActiveWorkbook.SaveAs Filename:="C:Reportingreport_" & Cells(1,1) & ".xls"

"Sou PULL" a écrit dans le message de news:

Merci, cela fonctionne...en partie car l'autre soucis que j'ai c'est que
lors de l'enregistrement du classeur je souhaiterais que le classeur
s'enregistre avec un nom ayant la forme report_"nomduvendeur".xls , cf
extrait de code ci-dessous :

Cordialement,

Soupull


Bonsoir,
à priori...

Cells(i, 1) = Workbooks("dorigine").Worksheets("lafeuille").[S1]

ChDir "C:Reporting"
ActiveWorkbook.SaveAs Filename:="C:Reportingreport_vendeur.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse