Msgbox avec 2 arguments

Bonjour la communanuté

J'ai besoin d'utiliser une macro dans un classeur excel. Mes opérations fonctionne très bien mais à la fin de la macro, j'aimerai afficher une msgbox

J'ai fait le code suivant :

MsgBox (blank," can create trouble")

blank est le nombre de blanc dans une plage et la valeur fonctionne très bien (déjà testé).

Mon seul problème est de réussir à afficher cette valeur avec un test...

Merci pour votre aide !

Bonjour,

Je ne comprend pas bien ta demande... Que veux tu tester au juste ?

Si le nombre de blancs est supérieur à .... alors afficher cette msgBox ?

Ce que j'aimerais c'est a la fin de la macro afficher simplement le nombre de blanc présent dans ma plage mais en ajoutant un commentaire pour exliquer à l'utilisateur ce que représente le nombre qui s'affiche

C'est vraiment qq de très basique !

Merci

Dans ce cas il faut que tu mette

MsgBox (Blank & " can create trouble")

en argument de ta MsgBox

Bon courage

Girodo

Le compilateur me dit que le signe = est attendu...

Bonjour,

Supprime les parenthèse !!

Mais si blank est un variable représentant un nombre, il faudrait dire qu'il s'agit de "blancs"...

Merci !

Malgré le Brexit je travail en Angleterre et je suis le seul français, tous les utilisateurs ne veulent que des outils en anglais !

Donc on ne se comprend pas :p Même en parlant tous les deux français !

Ma solution fonctionne si blank est une variable préalablement définie à laquelle on a déjà affecté une valeur.

Prenons l'exemple suivant :

MaVariable = 2
MsgBox (MaVariable & " can create trouble")

La MsgBox me renverra : 2 can create trouble

Ce n'est pas ça que tu voulais ?

Oui oui c'est exactement ça que je voulais !

Je ne sais pas pourquoi, avec les parenthèses ca n'a pas fonctionné...

Après avoir réessayé ca refonctionne peut être un coup de malchance

En tout cas marci pour l'aide !

L'équipe EXCEL-PRATIQUE est vraiment disponible et compétente un grand merci !!

MsgBox est une fonction. Si tu mets des parenthèses comme pour toute fonction, VBA va renâcler car tu n'es pas à droite d'un signe égale... Quand tu utilises uiquement la fonction "message" de MsgBox sans récupérer la valeur renvoyée, tu ne mets pas de parenthèses.

S'il n'y a qu'un seul argument, les parenthèses sont toutefois acceptées car la mise entre parenthèses d'un argument isolé correspond à un passage forcé par référence, opération licite (que tu ne veux généralement pas faire dans ce cas d'ailleurs ! mais comme cela correspond à une syntaxe valide, ça marche).

Cordialement.

Je ne connais pas bien vba puisque débutant donc merci pour les explications !

Donc chaque fois qu'il n'y a pas d'opérateur il faut éviter les parenthèses ?

En effet !

Merci pour la réponse !

Autre question :

J'ai fait un code qui fonctionne mais qui a besoin d'être optiisé, seulement mon code optimisé ne fonctionne pas...

Auriez vous une idée ?

code optimisé

Sub test()
Application.ScreenUpdating = False
A = Worksheets("Import SN data").Range("A" & Rows.Count).End(xlUp).Row
B = Worksheets("Import Batch data").Range("A" & Rows.Count).End(xlUp).Row
C = 0
D = 1
Dim ref
With Worksheets("production data")
fin = Worksheets("production data").Range("A" & Rows.Count).End(xlUp).Row
Do While C <> D
For k = 2 To fin
    If IsEmpty(Worksheets("production data").Cells(k, 6)) = False Then
        On Error Resume Next
        ref = .Range("A2:A" & fin).Find(Left(.Range("A" & k), 6), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows).Address
        If Right(ref.Offset(, 4).Value, 5) = Cells(k, 4) Then
            If Right(Left(ref.Offset(, 4).Value, 12), 3) = Worksheets("production data").Cells(k, 3) Then
                If CInt(Right(Left(ref.Offset(, 4).Value, 8), 2)) = Worksheets("production data").Cells(k, 2) Then
                    ref.Offset(, 7).Value = Worksheets("production data").Cells(k, 1)
                    ref.Offset(, 7).Interior.Color = vbGreen
                    ref.Offset(, 8).Value = Worksheets("production data").Cells(k, 4)
                    ref.Offset(, 9).Value = Worksheets("production data").Cells(k, 2)
                    ref.Offset(, 10).Value = Worksheets("production data").Cells(k, 3)
                    ref.Offset(, 5).Value = Worksheets("production data").Cells(k, 6)
                End If
            End If
        End If
    End If
Next k
D = C
C = Application.WorksheetFunction.CountIf(Worksheets("production data").Range("F2:F" & fin), Worksheets("Main Menu").Range("J9"))
Worksheets("production data").Cells(fin + 5, 3) = C
Worksheets("production data").Cells(fin + 6, 3) = D
Loop
End With

End Sub

code qui fonctionnait avant :

Private Sub CommandButton6_Click()
Application.ScreenUpdating = False
A = Worksheets("Import SN data").Range("A" & Rows.Count).End(xlUp).Row
B = Worksheets("Import Batch data").Range("A" & Rows.Count).End(xlUp).Row
C = 0
D = 1
With Worksheets("production data")
fin = Worksheets("production data").Range("A" & Rows.Count).End(xlUp).Row
Do While C <> D
For k = 2 To fin
    If IsEmpty(Worksheets("production data").Cells(k, 6)) = False Then
        For i = 2 To fin
            If Left(Worksheets("production data").Cells(i, 5), 6) = Worksheets("production data").Cells(k, 1) Then
                If Right(Cells(i, 5), 5) = Cells(k, 4) Then
                    If Right(Left(Worksheets("production data").Cells(i, 5), 12), 3) = Worksheets("production data").Cells(k, 3) Then
                            If CInt(Right(Left(Worksheets("production data").Cells(i, 5), 8), 2)) = Worksheets("production data").Cells(k, 2) Then
                                Worksheets("production data").Cells(i, 8) = Worksheets("production data").Cells(k, 1)
                                Worksheets("production data").Cells(i, 8).Interior.color = vbGreen
                                Worksheets("production data").Cells(i, 9) = Worksheets("production data").Cells(k, 4)
                                Worksheets("production data").Cells(i, 10) = Worksheets("production data").Cells(k, 2)
                                Worksheets("production data").Cells(i, 11) = Worksheets("production data").Cells(k, 3)
                                Worksheets("production data").Cells(i, 6) = Worksheets("production data").Cells(k, 6)
                            End If
                    End If
                End If
            End If
        Next i
    End If
Next k
D = C
C = Application.WorksheetFunction.CountIf(Worksheets("production data").Range("F2:F" & fin), Worksheets("Main Menu").Range("J9"))
Worksheets("production data").Cells(fin + 5, 3) = C
Worksheets("production data").Cells(fin + 6, 3) = D
Loop
End With
End Sub

et voici mon fichier :

Les boutons ne sont pas utiles, je travail dans le module 1...

Ce document est un crash text qui me permet de mettre mes codes au point avant de les utiliser dans mon gros fichier !

Merci d'avance pour l'aide !!

Un peu longuet pour s'y pencher... Tu dis où ça coince et on peut regarder à cet endroit !

Rechercher des sujets similaires à "msgbox arguments"