sauvegarde d'une feuille sans le code VBA qui va avec..

  • Initiateur de la discussion Initiateur de la discussion ninanani
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ninanani

XLDnaute Occasionnel
Bonjour le forum, toutes et tous!

Je vais essayer de vous expliquer clairement ma situation et mon probleme.

Dans un fichier excel, j'ai une feuille nomee "Simple Invoice", cette feuille a une macro associee.
Lorsque j'active un macro :

Code:
Sub Save_Sheet()

Dim strNom As Variant

ChDir "C:\Documents and Settings\Administrator\Desktop\nina\Paid invoices"

toto = Name & Range("B10") & Format(Range("G5"), " yyyy-mm-dd") & Format(Range("G6"), "-000")

strNom = Application.GetSaveAsFilename(toto, "Simple Invoice (*.xls),*.xls")


If strNom <> False Then
ActiveSheet.Copy
ActiveWorkbook.SaveAs strNom
ActiveWorkbook.Close
End If


End Sub

Seulement cette feuille va se sauvegarder dans un emplacement predefinnis.
Le probleme c'est que le code associe a cette feuille vient egalement. Or cela me pose un probleme car le code fonctionne en relation avec d'autres feuilles qui ne suivent pas la sauvegarde et donc des messages d'erreurs viennent m'embeter.

Je souhaiterais donc que lors de la sauvegarde seule la feuille se sauvegarde et pas le code macro qui va avec.

Voili voilo.
En esperant que j'ai ete claire, je vous remercie de vos futures reponses!
 
Re : sauvegarde d'une feuille sans le code VBA qui va avec..

Bonjour,

Dans la mesure où il faudra coder VBE, il faut savoir de quel type est le module à supprimer ...?

Concrètement, s'agit-il d'une macro évènementielle liée à ta feuille ou un module générique ...?

A +
 
Re : sauvegarde d'une feuille sans le code VBA qui va avec..

Re,
Voila le code qui est a supprimer :

Code:
Option Explicit


Private Sub Worksheet_Activate()
Range("B10").Select
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

Sheets("patients").Unprotect ("estherzina")

Dim colonne1a As String
Dim cellule As Range
Dim dl1 As Long ' dernière ligne
Dim lig As Long
Dim i As Integer
    If Target.Address <> "$B$10" Then Exit Sub
    With Sheets("Patients")
    colonne1a = ""
    For i = 1 To Len(Target.Address(0, 0))
    If Asc(Mid(Target.Address(0, 0), i, 1)) > 64 Then
        colonne1a = colonne1a & Mid(Target.Address(0, 0), i, 1)
    End If
    Next i
    dl1 = .Range(colonne1a & "65536").End(xlUp).Row
    lig = chercheligne("Patients", Target.Value, colonne1a & "2", colonne1a & dl1)
    If lig = 0 Then
    Select Case MsgBox("Le patient : " & Target.Value _
                   & vbCrLf & "Doesn't exists :" & .Range(colonne1a & 1) _
                   & vbCrLf & "Do you want to add him ?" _
                   & vbCrLf & "" _
                   , vbYesNo Or vbInformation Or vbDefaultButton1, Application.Name)
    Case vbYes
    UserForm1.Show
    Case vbNo
        Exit Sub
    End Select
    ' .Range(colonne1a & dl1 + 1) = Target.Value
    End If
    End With
End Sub


Function chercheligne(£feuille As String, £valeur As String, £col1d As String, £col1f As String)
Dim cel As Range
    Set cel = Sheets(£feuille).Range(£col1d & ":" & £col1f).Find(What:=£valeur, LookIn:=xlValues, SearchOrder:=xlByRows, LookAt:=xlWhole)
    If cel Is Nothing Then
    chercheligne = 0
    Else
    chercheligne = cel.Row
    End If
    
    Sheets("patients").Protect ("estherzina")
End Function

Ce code s'active lorsque je tape un nom nouveau dans le cellule B10 de la feuille "Simple Invoice".

En revanche je ne pourrais pas te dire si c'est une macro evenementielle.

Merci de ton aide.
 
Re : sauvegarde d'une feuille sans le code VBA qui va avec..

Re Pierrot,

Merci pour ce lien, c'est vrai qu'il est tres instructif.
Seulement, ces codes VBA donnes, si je les insere dans ma macro, cela ne va t'il pas em supprimer la code dans mon fichier de base?
Car je souhaite juste le supprimer dans ma feuille sauvegardee.

Je ne m'y connais pas trop en VBA, peut etre ma question est elle stupide et la reponse logique ^^.
 
Re : sauvegarde d'une feuille sans le code VBA qui va avec..

Re Pierrot,

Merci pour ce lien, c'est vrai qu'il est tres instructif.
Seulement, ces codes VBA donnes, si je les insere dans ma macro, cela ne va t'il pas em supprimer la code dans mon fichier de base?
Car je souhaite juste le supprimer dans ma feuille sauvegardee.

Je ne m'y connais pas trop en VBA, peut etre ma question est elle stupide et la reponse logique ^^.

Ta question n'est pas stupide, tu as compris que ces modules sont à manipuler avec précaution ...
Pendant tes tests, fais des copies de sauvegarde de ton travail ...
O Ka Zou ...

A +
 
Re : sauvegarde d'une feuille sans le code VBA qui va avec..

Re

il y a un code qui permet la suppression de tous les modules du classeur actif, je pense que c'est celui ci qu'il faut copier / adapter et utiliser après sauvegarde de ton nouveau classeur lorsque celui-ci est actif...

@+
 
Re : sauvegarde d'une feuille sans le code VBA qui va avec..

Re

petit complément, pour ce type de code il faut que la case "faire confiance au projet visual basic" soit cochée dans l'onglet "éditeurs approuvés" de la boite de dialogue "sécurité". barre de menu => outils => macro => sécurité.
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
1 K
Retour