Je ne peux pas vous transmettre le fichier en question, mais j'ai un bon exemple avec un menu.
Disons que dans mon document j'ai 4 feuilles:
Sur la 1ere se trouvent les entrées: Salade, Carottes, Tomate. Sur la 2e les plats de résistances: Pavé de boeuf, Saumon, Saucisses Et sur la 3e les dessert : Glaces, Mousse au chocolat, Pâtisserie.
Sur chacune de ces feuilles les plats proposés sont à cocher.
Sur la 4e feuille dois être composé (choix entrée, plat et dessert mi bout à bout) le menu choisit en entier.
Je voudrais avec un bouton intitulé "Créer le menu", que ce menu se compose selon les choix de l'utilisateur et qu'il n'ai plus qu'à rentrer un nom et un lieu de sauvegarde.
Voilà comment je procède:
J'enregistre une macro qui conditionnée par les choix, copie l'élément choisit de la page dessert en page quatre, puis l'élément choisit de la page Plat en 2e ligne de la page 4 et ainsi de suite...
Puis avec la macro, je sélectionne toute la page 4, puis "Copier", Je créer une nouvelle page Excel, "Colle" le contenu de la page 4 sur ce document vierge, ensuite enregistrer sous: .....
C'est à ce moment que je voudrais arrêter la macro, pour laisser à l'utilisateur le nom sous lequel enregistrer le menu et à quel endroit l'enregistrer.
Mais problème:
1) La macro est impossible à arrêter à ce moment précis.
2) la création d'une nouveau document Excel génère un fichier "Classeur 1" qui reste vide si l'utilisateur utilise un nom différent pour sauvegarder le menu créer...
J'aimerais une solution élégante pour remplir cet objectif.
Re : Crer une macro de sauvegarde avec l'enregistreur de macro.
Re
Maintenant voici une version modifiée du premier code
(il est vrai assez éloigné de la première mais c'est juste parce que ca fait un bail que je Vbaise
Code:
Sub a()
Dim copie As Workbook
Set copie = Workbooks.Add(xlWBATWorksheet)
ThisWorkbook.Worksheets("Feuil4").Copy Before:=copie.Sheets(1)
Application.DisplayAlerts = False
copie.Sheets(2).Delete
Application.DisplayAlerts = True
End Sub
La je coupe toute la feuille 4 avec les donné accumulé
Range("A1:H57").Select
Application.CutCopyMode = False
Selection.Cut
Workbooks.Add 'Je créer un nouveau fichier[/code]
ActiveSheet.Paste 'J'y colle le contenu de la feuille 4[/code]
'
VB:
Je sauvegarde.
'
VB:
Sauf que là, je ne maitrise ni le nom ni le lieu de sauvegarde
ActiveWorkbook.SaveAs Filename:="C:\Users\Laurent\Documents\Front_U.xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
'[code=vb] Ici ta macro
Dim copie As Workbook
Set copie = Workbooks.Add(xlWBATWorksheet)
ThisWorkbook.Worksheets("Feuil4").Copy Before:=copie.Sheets(1)
'
VB:
Il ne faut pas recopier la feuille 4 dans le même classeur
Re : Crer une macro de sauvegarde avec l'enregistreur de macro.
Bonsoir
Ma macro est juste une macro de test à utiliser sur un classeur vierge
contenant 4 feuilles
lance alors ma macro (seule) pour voir ce qui se produit.
Elle fait ce que tu demandais ici:
Puis avec la macro, je sélectionne toute la page 4, puis "Copier", Je créer une nouvelle page Excel, "Colle" le contenu de la page 4 sur ce document vierge,
Re : Crer une macro de sauvegarde avec l'enregistreur de macro.
Bonjour,
Bon alors, j'ai copié la macro enregistré, j'ai juste supprimer les scrolldown, et voilà que la 1ere selection : Range("A1:H34").Select échoue...
Je n'ai quand même pas besoin du scroll???
VB:
Private Sub front_suspension_out_but_Click()
Dim copie As Workbook
Sheets("Front suspension").Select
Range("A1:H34").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Labo").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
If F_choice = 1 Then ' Front_U Macro
Sheets("ARB+Ref.pts+comments").Select
Range("A3:H9").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Labo").Select
Range("A35").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Sheets("ARB+Ref.pts+comments").Select
Range("A34:H53").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Labo").Select
Range("A42").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
End If
If F_choice = 2 Then ' Front_T Macro
Sheets("ARB+Ref.pts+comments").Select
Range("A11:H19").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Labo").Select
Range("A35").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Sheets("ARB+Ref.pts+comments").Select
Range("A34:H53").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Labo").Select
Range("A44").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
End If
If F_choice = 3 Then ' Front_T_3rd Macro
Sheets("ARB+Ref.pts+comments").Select
Range("A21:H32").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Labo").Select
Range("A35").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Sheets("ARB+Ref.pts+comments").Select
Range("A34:H53").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Labo").Select
Range("A47").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
End If
Set copie = Workbooks.Add(xlWBATWorksheet)
ThisWorkbook.Worksheets("Labo").Copy Before:=copie.Sheets(1)
Application.DisplayAlerts = False
copie.Sheets(2).Delete
Application.DisplayAlerts = True
End Sub