place ce code VBA dans celui-ci pour faire les deux actions

amauryde

XLDnaute Occasionnel
Bonjour le forum,

Voila j'ai dans un programme complexe, cette macro de sauvegarde qui marche très bien avec un bouton:

Public Sub Guardar() 'copie sauvegarde classeur

Dim Nom As String
Nom = "Reporte de Chatarra del " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom
rep = MsgBox("El reporte del dia ha sido guardado en: " & Nom, vbYes + vbInformation, "Guardar el reporte")
End Sub

j'aimerai insérer la copie d'une colonne dans une autre colonne en cliquant sur le même bouton tout en gardant la sauvegarde.

Voici ma macro de copie-colle:

Sub collage()
'
' collage Macro
'

'
Range("B5:C20").Select
Selection.Copy
ActiveWindow.ScrollColumn = 2
Range("L5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub


Comment puis-je fusionner les deux en faisant en sorte que le copie-colle se fasse juste avant la sauvegarde?

Merci
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : place ce code VBA dans celui-ci pour faire les deux actions

Bonjour amauryde

essaie ceci:
Code:
Public Sub Guardar() 'copie sauvegarde classeur

Range("B5:C20").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 2
    Range("L5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Dim Nom As String
    Nom = "Reporte de Chatarra del " & Day(Date) & "-" &  Month(Date) & "-" & Year(Date) & "_" &  ActiveWorkbook.Name
    ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom
    rep = MsgBox("El reporte del dia ha sido guardado en: " & Nom, vbYes + vbInformation, "Guardar el reporte")
End Sub
à+
Philippe
 

amauryde

XLDnaute Occasionnel
Re : place ce code VBA dans celui-ci pour faire les deux actions

Merci pour ton aide, mais malheureusement ma colonne et son copie colle ne sont pas sur la même fauille que mon bouton sauvegarde.
du coup je tente de rajouter le nom de l'onglet: TotalChatarra
et ca me donnerai:

Public Sub Guardar() 'copie sauvegarde classeur

Sheets("TotalChatarra").Range("B5:C20").Select
Selection.Copy
ActiveWindow.ScrollColumn = 2
Sheets("TotalChatarra").Range("L5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Dim Nom As String
Nom = "Reporte de Chatarra del " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom
rep = MsgBox("El reporte del dia ha sido guardado en: " & Nom, vbYes + vbInformation, "Guardar el reporte")
End Sub

Mais ça beug :S
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : place ce code VBA dans celui-ci pour faire les deux actions

Bonjour Amauryde, Philippe, bonjour le forum,

Pareil que Philippe en épurant un peu le code inutile...

Code:
Public Sub Guardar() 'copie sauvegarde classeur
Dim Nom As String

Range("B5:C20").Copy
Range("L5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Nom = "Reporte de Chatarra del " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom
MsgBox "El reporte del dia ha sido guardado en: " & Nom, vbYes + vbInformation, "Guardar el reporte"
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : place ce code VBA dans celui-ci pour faire les deux actions

Bonjour le fil, bonjour le forum,

Essaie comme ça :
Code:
Public Sub Guardar() 'copie sauvegarde classeur
Dim Nom As String

With Sheets("TotalChatarra")
     .Range("B5:C20").Copy
     .Range("L5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
         :=False, Transpose:=False
End With
Nom = "Reporte de Chatarra del " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom
MsgBox "El reporte del dia ha sido guardado en: " & Nom, vbYes + vbInformation, "Guardar el reporte"
End Sub

Pour sélectionner un plage dans un onglet qui n'est pas l'onglet actif il faut commencer par sélectionner l'onglet lui-même. C'est pour cela qu'il faut éviter le plus possible les Select qui ralentissent le code. Avec With ça fonctionne si on supprime les Select...
 
Dernière édition:

Discussions similaires

Réponses
13
Affichages
2 K

Statistiques des forums

Discussions
312 492
Messages
2 088 933
Membres
103 985
dernier inscrit
JL Fargeas