Utilisation de WINDOWS.activate
BING01
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
BING02 -
BING02 -
Bonjour à tous.
Je suis un petit nouveau sur le forum et un grand débutant en VBA. Je cherche depuis des heures sur le forum des solutions à mes problèmes (un très grand merci à tous au passage !!!!!) et en général je trouve mon bonheur mais là je suis bloqué. Voici mon problème.
J'ai fait une macro qui créé un fichier Copie dans lequel est insérée une copie de la Feuille1 de mon classeur Source puis enregistre ce fichier Copie dans un répertoire "X" que je choisi, sans formules, sans macro et sans boutons de commandes (que certains objets). A l'issue de cette procédure, toujours dans la même macro, j'accompli une opération de vidage de données dans certaines cases. Jusque là pas de problème. Mais je ne suis pas parvenu à intégrer à la fin de cette macro des instructions pour :
- ré-enregistrer une nouvelle fois le fichier Copie puisque entre sa création et cet instant il a été modifié (suppression des données de certaines cases),
- puis de fermer enfin ce fichier Copie pour retourner dans le fichier Source.
Le nom du fichier Copie est indiqué dans la case A1 du fichier Source et varie donc au gré des enregistrements de copies.
J'ai imaginé de créer une macro séparée pour effectuer ces deux dernières instructions puis de combiner les 2 macros par la suite. Auriez-vous quelques minutes pour m'aider pour la 2ème macro, voir me dire si vous avez une idée pour inclure les instructions dans la première. La difficulté pour moi est d'indiquer le chemin du fichier qui varie dans l'expression Windows(....).Activate
Voici mon code complet :
de la 1ère Macro (qui fonctionne) :
________________________________________________________________________________
Sub Copier_enregistrer_ACTIONS()
Application.EnableEvents = False
ThisWorkbook.Worksheets("PROPOSITION").Copy
With ActiveWorkboock
'suppression des boutons de commande : ne supprime que les boutons de commande pas les photos
For Each s In ActiveSheet.Shapes
'Bouton "Changer de véhicule"
If s.TopLeftCell.Address = "$H$12" Then
s.Delete
End If
Next s
'Forme BLANCHE masquant "caractéristiques techniques" sous les boutons
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = "$I$12" Then
s.Delete
End If
Next s
'Boutons "Enregistrer DEVIS", "IMPRIMER", "Enregistrer PDF"
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = "$L$12" Then
s.Delete
End If
Next s
For Each s In ActiveSheet.Shapes
' Boutons "Nouveau DEVIS", "MAIL A PIERRE", "QUITTER"
If s.TopLeftCell.Address = "$N$12" Then
s.Delete
End If
Next s
For Each s In ActiveSheet.Shapes
' Bouton "NV"
If s.TopLeftCell.Address = "$R$8" Then
s.Delete
End If
Next s
'suppression des macros
With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
'Suppression des formules
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Cells(1, 1).Select
'definition du nom du fichier
NomDeSauvegarde = ActiveWorkbook.Sheets("ACTIONS").Range("A1").Text
NomSauve = ActiveWorkbook.Application.GetSaveAsFilename(InitialFileName:=NomDeSauvegarde, _
FileFilter:="Excel Files (*.xls), *xls")
If NomSauve = False Then Exit Sub
ActiveWorkbook.SaveAs NomSauve
End With
'efface les données contenues dans les cases "A1", "G3", ....
Sheets("ACTIONS").Range("A1,G3,H3,M3,N1,N3,N4,P7").ClearContents
Application.EnableEvents = True
Exit Sub
End Sub
__________________________________________________________________________________
de la 2ème Macro (qui n'est pas achevé et qui ne fonctionne pas !!)
__________________________________________________________________________________
Sub Macro1()
'
' Macro1 Macro
'
'definition du nom du fichier
NomDuFichier = ActiveWorkbook.Sheets("ACTIONS").Range("A1").Text
Windows(InitialFileName:=NomDuFichier, _
FileFilter:="Excel Files (*.xls), *xls").Activate
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
__________________________________________________________________________________
D'avance un énorme merci pour le temps que vous prendrez à m'aider.
BING01
Je suis un petit nouveau sur le forum et un grand débutant en VBA. Je cherche depuis des heures sur le forum des solutions à mes problèmes (un très grand merci à tous au passage !!!!!) et en général je trouve mon bonheur mais là je suis bloqué. Voici mon problème.
J'ai fait une macro qui créé un fichier Copie dans lequel est insérée une copie de la Feuille1 de mon classeur Source puis enregistre ce fichier Copie dans un répertoire "X" que je choisi, sans formules, sans macro et sans boutons de commandes (que certains objets). A l'issue de cette procédure, toujours dans la même macro, j'accompli une opération de vidage de données dans certaines cases. Jusque là pas de problème. Mais je ne suis pas parvenu à intégrer à la fin de cette macro des instructions pour :
- ré-enregistrer une nouvelle fois le fichier Copie puisque entre sa création et cet instant il a été modifié (suppression des données de certaines cases),
- puis de fermer enfin ce fichier Copie pour retourner dans le fichier Source.
Le nom du fichier Copie est indiqué dans la case A1 du fichier Source et varie donc au gré des enregistrements de copies.
J'ai imaginé de créer une macro séparée pour effectuer ces deux dernières instructions puis de combiner les 2 macros par la suite. Auriez-vous quelques minutes pour m'aider pour la 2ème macro, voir me dire si vous avez une idée pour inclure les instructions dans la première. La difficulté pour moi est d'indiquer le chemin du fichier qui varie dans l'expression Windows(....).Activate
Voici mon code complet :
de la 1ère Macro (qui fonctionne) :
________________________________________________________________________________
Sub Copier_enregistrer_ACTIONS()
Application.EnableEvents = False
ThisWorkbook.Worksheets("PROPOSITION").Copy
With ActiveWorkboock
'suppression des boutons de commande : ne supprime que les boutons de commande pas les photos
For Each s In ActiveSheet.Shapes
'Bouton "Changer de véhicule"
If s.TopLeftCell.Address = "$H$12" Then
s.Delete
End If
Next s
'Forme BLANCHE masquant "caractéristiques techniques" sous les boutons
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = "$I$12" Then
s.Delete
End If
Next s
'Boutons "Enregistrer DEVIS", "IMPRIMER", "Enregistrer PDF"
For Each s In ActiveSheet.Shapes
If s.TopLeftCell.Address = "$L$12" Then
s.Delete
End If
Next s
For Each s In ActiveSheet.Shapes
' Boutons "Nouveau DEVIS", "MAIL A PIERRE", "QUITTER"
If s.TopLeftCell.Address = "$N$12" Then
s.Delete
End If
Next s
For Each s In ActiveSheet.Shapes
' Bouton "NV"
If s.TopLeftCell.Address = "$R$8" Then
s.Delete
End If
Next s
'suppression des macros
With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
'Suppression des formules
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Cells(1, 1).Select
'definition du nom du fichier
NomDeSauvegarde = ActiveWorkbook.Sheets("ACTIONS").Range("A1").Text
NomSauve = ActiveWorkbook.Application.GetSaveAsFilename(InitialFileName:=NomDeSauvegarde, _
FileFilter:="Excel Files (*.xls), *xls")
If NomSauve = False Then Exit Sub
ActiveWorkbook.SaveAs NomSauve
End With
'efface les données contenues dans les cases "A1", "G3", ....
Sheets("ACTIONS").Range("A1,G3,H3,M3,N1,N3,N4,P7").ClearContents
Application.EnableEvents = True
Exit Sub
End Sub
__________________________________________________________________________________
de la 2ème Macro (qui n'est pas achevé et qui ne fonctionne pas !!)
__________________________________________________________________________________
Sub Macro1()
'
' Macro1 Macro
'
'definition du nom du fichier
NomDuFichier = ActiveWorkbook.Sheets("ACTIONS").Range("A1").Text
Windows(InitialFileName:=NomDuFichier, _
FileFilter:="Excel Files (*.xls), *xls").Activate
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
__________________________________________________________________________________
D'avance un énorme merci pour le temps que vous prendrez à m'aider.
BING01
A voir également:
- Windows activate vba
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- La ressource demandée est en cours d'utilisation ✓ - Forum Caméra
- Impossible d'utiliser ce numéro de téléphone pour la validation. - Forum Gmail
- Vous avez utilisé ce numéro de téléphone à de trop nombreuses reprises - Forum Gmail
7 réponses
Bonjour,
Ta procédure enregistre le classeur sous le nom contenu en Actions!A1.
Ensuite, elle efface les données contenues dans les cases "A1", "G3", ....
Si tu souhaites enregistrer le classeur après avoir effacé les cases "A1", "G3", etc. il suffit de changer l'ordre des opérations.
1) le nom de la copie est affecté à la variable NomDeSauvegarde
2) les cases "A1", "G3", ... sont effacées
3) le classeur est enregistré sous le nom correspondant à NomDeSauvegarde.
A+
Ta procédure enregistre le classeur sous le nom contenu en Actions!A1.
Ensuite, elle efface les données contenues dans les cases "A1", "G3", ....
Si tu souhaites enregistrer le classeur après avoir effacé les cases "A1", "G3", etc. il suffit de changer l'ordre des opérations.
1) le nom de la copie est affecté à la variable NomDeSauvegarde
2) les cases "A1", "G3", ... sont effacées
3) le classeur est enregistré sous le nom correspondant à NomDeSauvegarde.
'On affecte le nom du fichier à une variable
NomDeSauvegarde = ActiveWorkbook.Sheets("ACTIONS").Range("A1").Text
'On efface les données contenues dans les cases "A1", "G3", ....
Sheets("ACTIONS").Range("A1,G3,H3,M3,N1,N3,N4,P7").ClearContents
'On enregistre
NomSauve = ActiveWorkbook.Application.GetSaveAsFilename(InitialFileName:=NomDeSauvegarde, _
FileFilter:="Excel Files (*.xls), *xls")
If NomSauve = False Then Exit Sub
ActiveWorkbook.SaveAs NomSauve
A+