macro

chinel

XLDnaute Impliqué
Salut tout le monde, j'ai un souci au niveau d'une macro
un classeur nommé "Planning en cours" une feuille nommée "Planning" cette feuille doit-être sauvegardée.

sub macro ()

Dim Obj As OLEObject
Dim Chemin As String
'Chemin = "C:\" ici pour pour pouvoir tester
Chemin = "C:\Documents and Settings\Manuel Dejong\Mes documents\"
NomFeuille = "Feuil1"
Application.ScreenUpdating = False
Sheets("Planning").Copy
'Suppression des boutons (ActiveX) dans la feuille
For Each Obj In ActiveSheet.OLEObjects
If TypeOf Obj.Object Is MSForms.CommandButton Then Obj.Delete
Next
Application.DisplayAlerts = False
With ActiveWorkbook
.saveas Chemin & "Archive du " & _
Format(Date, "dd mmm"), FileFormat:=xlExcel4
.Close
End With
end sub

cela fonctionne mais j'aurais bien voulu que dans ma sauvegarde les macros soient désactivées et qu'on ne puisse pas voir le bouton de commande (voir exemple) bizarre mai quand j'ouvre ma copie sauvegardée mon fichier original s'ouvre aussi (pas bien ça !)
mais la couleur de fond de mon planning a disparu elle était jaune , les cellules liées ont disparus

pouvez vous m'aider ça commence à prendre forme mon projet !!!
Fichiers attachés
 

Pièces jointes

  • Archive du 22 juin.xls
    23.5 KB · Affichages: 48
  • Archive du 22 juin.xls
    23.5 KB · Affichages: 44
  • Archive du 22 juin.xls
    23.5 KB · Affichages: 44

JCGL

XLDnaute Barbatruc
Re : macro

Bonjour,

Pour effacer les boutons de ta sauvegarde :

ActiveSheet.DrawingObjects.Delete

Judicieusement placé dans ta procédure...

Tu as déposé la sauvegarde pas facile (et surtout pas envie de recréer le fichier) de te conseiller

A+
 

Staple1600

XLDnaute Barbatruc
Re : macro

Bonjour



Dans ton premier fil voir ici: https://www.excel-downloads.com/threads/macro.77516/
MichelXLD (erreur sur la personne)

myDearFriend! t'a proposé cette solution:

Tu ne l'as pas essayé?
Code:
Sub Traitement()
' myDearFriend! - [url=http://www.mdf-xlpages.com]myDearFriend! Excel Pages - Mon univers Excel... - Mon univers Excel...[/url]
Dim Obj As OLEObject
Dim Chemin As String, NomFeuille As String

    Chemin = "C:\Documents and Settings\Manuel Dejong\Mes documents\"
    NomFeuille = "Feuil1"       'Nom de l'onglet à sauvegarder (à adapter)
    
    Application.ScreenUpdating = False
    'Copie de la feuille (création nouveau classeur)
    Sheets(NomFeuille).Copy
    
    'Suppression des boutons (ActiveX) dans la feuille
    For Each Obj In ActiveSheet.OLEObjects
       If TypeOf Obj.Object Is MSForms.CommandButton Then Obj.Delete
    Next
    
    'Suppression du code VBA
    With ActiveWorkbook
        With .VBProject.VBComponents(NomFeuille).CodeModule
            .DeleteLines 1, .CountOfLines
            .CodePane.Window.Close
        End With
        
        'Sauvegarde du classeur et fermeture
        .SaveAs Chemin & "Archive du " & Format(Date, "dd mmm")
        .Close
    End With
    Application.ScreenUpdating = True
End Sub

PS: tu peux enlever cette ligne que j'avais mis pour tester sur mon pc
'Chemin = "C:\" ici pour pour pouvoir tester
 
Dernière édition:

myDearFriend!

XLDnaute Barbatruc
Re : macro

Bonsoir chinel, JCGL, Staple1600, le Forum,

Bien qu'être confondu avec MichelXLD soit un compliment plutôt flatteur ;) (pour lui c'est pas sûr :p), non, MichelXLD n'est pas mon pseudo...

Comme j'avais mis en garde contre l'utilisation du format de fichier XL4 dans ce précédent fil et que, visiblement ça ne semblait pas perturber notre ami chinel, j'avais donc décidé de vous laisser continuer cette discussion...

Cela dit, JCGL l'a bien remarqué, chino n'utilise pas les contrôles ActiveX de la Boîte à Outils Contrôles mais bien les boutons de la barre Formulaire. Il en résulte donc que la partie de code : For each Obj in ActiveSheet.OLEObjects ne fonctionnera pas.

Une chose par contre que je ne m'explique pas et à laquelle seul chino saurait répondre : si les boutons ne sont pas des ActiveX, leurs macros associées devraient se situer dans un module de code standard. Alors pourquoi y aurait-il du code VBA à supprimer dans le module de code la feuille ?

Cordialement,
 

Staple1600

XLDnaute Barbatruc
Re : macro

Bonsoir (et d'emblée pardon)


Milles excuses (à ma décharge, je sortais d'un repas de famille ...)

En plus le nom de l'auteur de la macro était dans le code.

Je suis confus et désolé.



PS: comme quoi l'alcool et VBA ne font pas bon ménage...
je m'explique même pas la genèse de l'erreur
je suis effectivement allé dans l'autre post pour un CTRL C/ CTR V

M'en vais éditer de ce pas pour rétablir la vérité et rendre à César
qui est à César
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 685
Messages
2 090 944
Membres
104 705
dernier inscrit
Mike72