Probléme VBA MSGBOX + varoables

Résolu
roulio66 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, sa fait quelque jour que j'ai commencer à développer sur du VBA pour mon travail mais je rencontre un problème au quel je n'arrive pas a trouver de réponse

je voudrais utiliser un MSGBOX (fonction) avec comme message 2 variable
j'arrive à le faire avec juste un MSGBOX traditionnel mais pas en mode fonction

voila comment ce présent la chose:


Sub salade1()
'
'
'

 'Déclaration des variables
    Dim question As String, salade1 As String, salade2 As String, salade3 As String
     
    'Valeurs des variables
   question = Worksheets("feuil3").[A31]
   salade1 = Worksheets("feuil3").[C4]
   salade2 = Worksheets("feuil3").[C5]
   salade3 = Worksheets("feuil3").[C6]
       
'
if MsgBox ([question & salade1 & "?"][, vbyesno]) = vbyes them
                                                               'active feuiil2
Sheets(2).Select
ActiveSheet.Cells(Rows.Count, "A").End(xlUp)(2).Select
                                                            'désignation  article
With ActiveCell
    .Value = "BAG 1"
    .Borders.Value = 1
    .Interior.ColorIndex = 0
    End With
                                                           'composition
ActiveSheet.Cells(Rows.Count, "B").End(xlUp)(2).Select
With ActiveCell
    .Value = "SALADE 1"
    .Borders.Value = 1
    .Interior.ColorIndex = 0
    End With
                                                          'detail
Sheets(2).Select
ActiveSheet.Cells(Rows.Count, "c").End(xlUp)(2).Select

With ActiveCell
     .Value = salade1
     .Borders.Value = 1
     .Interior.ColorIndex = 0
     End With
                                                              'quantiter
ActiveSheet.Cells(Rows.Count, "D").End(xlUp)(2).Select
With ActiveCell
     .Value = "1"
     .Borders.Value = 1
     .Interior.ColorIndex = 0
     End With
     
     End If
     
End Sub


merci (je suis navré si mon programme est mal construit je débute)

3 réponses

ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Bonsoir Roulio, bonsoir le forum,

Évite de nommer ta madcro avec le même nom qu'une de tes variables, ça pourrait planter...
Je me demande aussi si tu ne devrais pas ajouter une espace entre question & salade1 (question & " " & salade1).
Ton code modifié :

Sub salade()
'Déclaration des variables
Dim F2 As Worksheet
Dim F3 As Worksheet
Dim question As String, salade1 As String, salade2 As String, salade3 As String

Set F2 = Sheets(2)
Set F3 = Sheets("Feuil3")

'Valeurs des variables
question = F3.Range("A31").Value
salade1 = F3.Range("C4").Value
salade2 = F3.Range("C5").Value
salade3 = F3.Range("C6").Value

'
If MsgBox(question & salade1 & "?", vbYesNo) = vbYes Then
    With F2.Cells(Application.Rows.Count, 1).End(xlUp)(2)
        'désignation article
        .Value = "BAG 1"
        .Borders.Value = 1
        .Interior.ColorIndex = 0
    End With
    'composition
    With F2.Cells(Application.Rows.Count, 2).End(xlUp)(2)
        .Value = "SALADE 1"
        .Borders.Value = 1
        .Interior.ColorIndex = 0
        End With
    'detail
    With F2.Cells(Application.Rows.Count, 3).End(xlUp)(2)
        .Value = salade1
        .Borders.Value = 1
        .Interior.ColorIndex = 0
    End With
    'quantiter
    With F2.Cells(applicationRows.Count, 4).End(xlUp)(2)
        .Value = "1"
        .Borders.Value = 1
        .Interior.ColorIndex = 0
    End With
End If
End Sub

0
Patty5083 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
je remplacerai bien ta ligne de test msgbox par celle-ci :

If MsgBox(question & salade1 & "?", vbYesNo) = vbYes Then
0
roulio66 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup je vais pouvoir avancer dans mon projet <3 <3
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Quand dans l'aide tu vois un paramètre entre des [ ], c'est pour indiquer qu'il est optionnel.
Si tu l'utilises il ne faut pas les mettre.

eric
0