Macro de sauvegarde et userform

L'apprentie - 22 juil. 2009 à 10:20
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 24 juil. 2009 à 10:23
Bonjour,

Voila, j'ai un classeur avec de nombreuses petites macro sous forme de CommandButton. L'un d'entre eux permet de sauvegarder et quitter. Lorsque mon classeur s'ouvre, un UserForm s'ouvre et demande de le répertoire de sauvegarde que l'utilisateur désire. Ensuite, j'ai crée un fonction qui est censé récupéré ce chemin et permettre de le copier à tous mes CommandButton de sauvegarde. Voila, je suis un peu coincé. Je vous donne mes codes, peut être que ca vous parlera plus !

Dans mon USF :

Public Sub CommandButton1_Click()

    If CommandButton1.Enabled = True Then
    
        If Me.SaveWay = "" Then
            MsgBox "Please enter the adress"
            Me.SaveWay.SetFocus
        Exit Sub
        
        End If
        
        S = Me.SaveWay.Value
        Unload Me
        
    End If
    
End Sub


Voila ma fonction :

Public Function Saves()

    Dim way As String
    Dim ProjectName As String
    Dim ProjectNumber As String
    
        Range("B1").Select
            ProjectNumber = ActiveCell.Text
        Range("B2").Select
            ProjectName = ActiveCell.Text
    If ProjectName = "0" Then
        MsgBox ("Enter the Project Name in Report MR Sheet")
        Exit Function
    End If
    
    If ProjectNumber = "0" Then
        MsgBox ("Enter the Project Number in Report MR Sheet")
        Exit Function
    End If
    
    way = Debut.SaveWay.Value
    ActiveWorkbook.SaveAs Filename:=way & ProjectName & "-" & ProjectNumber & ".xls"
    
End Function



Merci pour toute aide apporté.
A voir également:

1 réponse

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 295
24 juil. 2009 à 10:23
Bonjour,

Un peu en retard mais...

tu écris Public Function saves..... mais ce n'est pas une fonction c'est une procédure
donc écris Public Sub Saves....
Ensuite, au niveau du module à l'extérieure de ta Sub déclare un nom de variable globale Qui sera
utilisée une seule fois.
Ce n'est pas forcément élégant mais cela simplifiera ton travail.
Dans ton Cas ..

Public Way as string

public sub premièremacro()
...
userform1.show
...
end sub
A+
0