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

Enregistrer sous... sans macro

2 réponses
Avatar
GGAL
Bonjour,
J'ai la macro suivante (Macro1) qui me permet d'enregistrer la première
feuille. Pas de problème jusqu'ici. Or cette feuille contient des listes
déroulantes auxquelles j'ai associé la procédure suivante
(Worksheet_SelectionChange(ByVal abc As Range) que je voudrais également
supprimer. J'ai essayé plusieurs méthodes vues dans les forums, mais deux
problèmes :
D'abord le fichier obtenu s'ouvre avec une fenêtre d'alerte d'ouverture de
macro, alors qu'il n'y en a pas. J'enregistre, j'ouvre de nouveau et là plus
de message d'alerte. Bon mais on peut mieux.
Ensuite le deuxième problème vient du classeur de départ. Si après
fermeture, je l'ouvre, j'ai le message :
« Impossible d'accéder à 'Truc.xls' Le fichier est peut-être en lecture
seule ou vous essayez peut-être d'accéder à un emplacement en lecture seule.
Il est également possible que le serveur sur lequel il est enregistré le
document ne réponde pas. »
Pire si j'essaie de supprimer le classeur, j'ai le message :
« Impossible de supprimer 'Truc' Impossible de lire à partir du fichier ou
de la disquette source »
En fait pour le supprimer il faut le faire en mode sans échec !

Où sont les erreurs ?
Y a-t-il une meilleure méthode pour copier la première feuille et sans les
macros ?

Merci de vos réponses,

GGAL

Sub Worksheet_SelectionChange(ByVal abc As Range)
If abc.Address = "$F$11" Or abc.Address = "$F$13" Or abc.Address = "$F$16" _
Or abc.Address = "$F$17" Or abc.Address = "$F$20" Or abc.Address = "$F$21" _
Then
Application.SendKeys ("%{DOWN}")
End If
End Sub


Sub Macro1()
Sheets(1).Activate
Range("g7").Select
Sheets(2).Activate
Range("g13").Select
Selection.Copy
ActiveSheet.Previous.Select
ActiveSheet.Paste
Sheets(1).Select
Application.CutCopyMode = False
Sheets(1).Copy
Cells.Select
Selection.Copy
Cells.Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Shapes("Action").Delete
ActiveSheet.Shapes("Immeubles").Delete
Range("b116:d117").ClearContents
Range("a1").Select
ActiveSheet.Protect Password:="bdf", DrawingObjects:=True, Contents:=True,
Scenarios:=True
stempFile = Range("f10") & " " & Range("f9") & " " & Range("f8") & " " &
Range("f11").Text
ActiveWorkbook.SaveAs "C:\windows\temp\" & stempFile & " " & "Envoi du " &
Application.WorksheetFunction.Text(Date, "DD MM YYYY") & ".xls"
ActiveWindow.Close
ActiveSheet.Range("A1").Select
End Sub

2 réponses

Avatar
isabelle
bonjour,

voici un exemple pour supprimer tout le code du classeur actif (extrait de la Faq)

Sub SupprToutCodeVBA()
'L Longre, mpfe
Dim VBC As Object
With ActiveWorkbook.VBProject
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
.DeleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC
End With
MsgBox "Modules et macros du classeur actif supprimées.", _
vbInformation
End Sub

isabelle

Bonjour,
J'ai la macro suivante (Macro1) qui me permet d'enregistrer la première
feuille. Pas de problème jusqu'ici. Or cette feuille contient des listes
déroulantes auxquelles j'ai associé la procédure suivante
(Worksheet_SelectionChange(ByVal abc As Range) que je voudrais également
supprimer. J'ai essayé plusieurs méthodes vues dans les forums, mais deux
problèmes :
D'abord le fichier obtenu s'ouvre avec une fenêtre d'alerte d'ouverture de
macro, alors qu'il n'y en a pas. J'enregistre, j'ouvre de nouveau et là plus
de message d'alerte. Bon mais on peut mieux.
Ensuite le deuxième problème vient du classeur de départ. Si après
fermeture, je l'ouvre, j'ai le message :
« Impossible d'accéder à 'Truc.xls' Le fichier est peut-être en lecture
seule ou vous essayez peut-être d'accéder à un emplacement en lecture seule.
Il est également possible que le serveur sur lequel il est enregistré le
document ne réponde pas. »
Pire si j'essaie de supprimer le classeur, j'ai le message :
« Impossible de supprimer 'Truc' Impossible de lire à partir du fichier ou
de la disquette source »
En fait pour le supprimer il faut le faire en mode sans échec !

Où sont les erreurs ?
Y a-t-il une meilleure méthode pour copier la première feuille et sans les
macros ?

Merci de vos réponses,

GGAL

Sub Worksheet_SelectionChange(ByVal abc As Range)
If abc.Address = "$F$11" Or abc.Address = "$F$13" Or abc.Address = "$F$16" _
Or abc.Address = "$F$17" Or abc.Address = "$F$20" Or abc.Address = "$F$21" _
Then
Application.SendKeys ("%{DOWN}")
End If
End Sub


Sub Macro1()
Sheets(1).Activate
Range("g7").Select
Sheets(2).Activate
Range("g13").Select
Selection.Copy
ActiveSheet.Previous.Select
ActiveSheet.Paste
Sheets(1).Select
Application.CutCopyMode = False
Sheets(1).Copy
Cells.Select
Selection.Copy
Cells.Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
ActiveSheet.Shapes("Action").Delete
ActiveSheet.Shapes("Immeubles").Delete
Range("b116:d117").ClearContents
Range("a1").Select
ActiveSheet.Protect Password:="bdf", DrawingObjects:=True, Contents:=True,
Scenarios:=True
stempFile = Range("f10") & " " & Range("f9") & " " & Range("f8") & " " &
Range("f11").Text
ActiveWorkbook.SaveAs "C:windowstemp" & stempFile & " " & "Envoi du " &
Application.WorksheetFunction.Text(Date, "DD MM YYYY") & ".xls"
ActiveWindow.Close
ActiveSheet.Range("A1").Select
End Sub


Avatar
GGAL
Merci isabelle, mais cette procédure comme les autres assez semblables, qui
fonctionnent bien, mais lorsque je veux rouvrir le fichier j'ai toujours ces
deux problèmes.

GGAL


bonjour,

voici un exemple pour supprimer tout le code du classeur actif (extrait de la Faq)

Sub SupprToutCodeVBA()
'L Longre, mpfe
Dim VBC As Object
With ActiveWorkbook.VBProject
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
..DeleteLines 1, .CountOfLines
..CodePane.Window.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC
End With
MsgBox "Modules et macros du classeur actif supprimées.", _
vbInformation
End Sub

isabelle

Bonjour,
J'ai la macro suivante (Macro1) qui me permet d'enregistrer la première
feuille. Pas de problème jusqu'ici. Or cette feuille contient des listes
déroulantes auxquelles j'ai associé la procédure suivante
(Worksheet_SelectionChange(ByVal abc As Range) que je voudrais également
supprimer. J'ai essayé plusieurs méthodes vues dans les forums, mais deux
problèmes :
D'abord le fichier obtenu s'ouvre avec une fenêtre d'alerte d'ouverture de
macro, alors qu'il n'y en a pas. J'enregistre, j'ouvre de nouveau et là plus
de message d'alerte. Bon mais on peut mieux.
Ensuite le deuxième problème vient du classeur de départ. Si après
fermeture, je l'ouvre, j'ai le message :
« Impossible d'accéder à 'Truc.xls' Le fichier est peut-être en lecture
seule ou vous essayez peut-être d'accéder à un emplacement en lecture seule.
Il est également possible que le serveur sur lequel il est enregistré le
document ne réponde pas. »
Pire si j'essaie de supprimer le classeur, j'ai le message :
« Impossible de supprimer 'Truc' Impossible de lire à partir du fichier ou
de la disquette source »
En fait pour le supprimer il faut le faire en mode sans échec !

Où sont les erreurs ?
Y a-t-il une meilleure méthode pour copier la première feuille et sans les
macros ?

Merci de vos réponses,

GGAL

Sub Worksheet_SelectionChange(ByVal abc As Range)
If abc.Address = "$F$11" Or abc.Address = "$F$13" Or abc.Address = "$F$16" _
Or abc.Address = "$F$17" Or abc.Address = "$F$20" Or abc.Address = "$F$21" _
Then
Application.SendKeys ("%{DOWN}")
End If
End Sub


Sub Macro1()
Sheets(1).Activate
Range("g7").Select
Sheets(2).Activate
Range("g13").Select
Selection.Copy
ActiveSheet.Previous.Select
ActiveSheet.Paste
Sheets(1).Select
Application.CutCopyMode = False
Sheets(1).Copy
Cells.Select
Selection.Copy
Cells.Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:úlse, Transpose:úlse
Application.CutCopyMode = False
ActiveSheet.Shapes("Action").Delete
ActiveSheet.Shapes("Immeubles").Delete
Range("b116:d117").ClearContents
Range("a1").Select
ActiveSheet.Protect Password:="bdf", DrawingObjects:=True, Contents:=True,
Scenarios:=True
stempFile = Range("f10") & " " & Range("f9") & " " & Range("f8") & " " &
Range("f11").Text
ActiveWorkbook.SaveAs "C:windowstemp" & stempFile & " " & "Envoi du " &
Application.WorksheetFunction.Text(Date, "DD MM YYYY") & ".xls"
ActiveWindow.Close
ActiveSheet.Range("A1").Select
End Sub