Excel msgbox
Résolu
Evedll
Messages postés
74
Date d'inscription
Statut
Membre
Dernière intervention
-
Evedll Messages postés 74 Date d'inscription Statut Membre Dernière intervention -
Evedll Messages postés 74 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde,
J'ai utilisé dernièrement ce code car une personne de ce forum a bien voulu m'aider (et je l'en remercie). Il est vraiment adapté à mes besoins.
Sub ControleTypePaiement()
Dim C As Range
For Each C In Range("E16:E25")
If UCase(C) = "X" And C.Offset(0, 1) = "" Then
MsgBox "Saisir le type de paiement"
Exit Sub
End If
Next C
End Sub
Cependant, j'ai voulu l'adapter pour autre chose qui semble est pratiquement identique :
Sub ControleValidation()
Dim T As Range
For Each T In Range("C6:C11")
If T.Value <> "" And C.Offset(0, 1) = "" Then
MsgBox "Activité à valider ?"
Exit Sub
End If
Next T
End Sub
Mon besoin est : si les cellules C6:C11 ne sont pas vides, et que les cellules plus loin le sont C.offset(0,1), s'affiche une boite de dialogue.
J'ai modifié comment indiquer la plage C6:C11 (je ne pense pas pouvoir utiliser Ucase) mais je n'arrive pas à trouver comment écrire cette ligne de code.
J'ai regardé dans l'aide mais j'ai un peu de mal à comprendre les explications.
Merci de bien vouloir m'aider.
Evelyne
J'ai utilisé dernièrement ce code car une personne de ce forum a bien voulu m'aider (et je l'en remercie). Il est vraiment adapté à mes besoins.
Sub ControleTypePaiement()
Dim C As Range
For Each C In Range("E16:E25")
If UCase(C) = "X" And C.Offset(0, 1) = "" Then
MsgBox "Saisir le type de paiement"
Exit Sub
End If
Next C
End Sub
Cependant, j'ai voulu l'adapter pour autre chose qui semble est pratiquement identique :
Sub ControleValidation()
Dim T As Range
For Each T In Range("C6:C11")
If T.Value <> "" And C.Offset(0, 1) = "" Then
MsgBox "Activité à valider ?"
Exit Sub
End If
Next T
End Sub
Mon besoin est : si les cellules C6:C11 ne sont pas vides, et que les cellules plus loin le sont C.offset(0,1), s'affiche une boite de dialogue.
J'ai modifié comment indiquer la plage C6:C11 (je ne pense pas pouvoir utiliser Ucase) mais je n'arrive pas à trouver comment écrire cette ligne de code.
J'ai regardé dans l'aide mais j'ai un peu de mal à comprendre les explications.
Merci de bien vouloir m'aider.
Evelyne
A voir également:
- Excel msgbox
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
5 réponses
bonjour
le coupable est peut être là
bonne suite
le coupable est peut être là
If T.Value <> "" And C.Offset(0, 1) = "" Then
c'est
T.Offset(0,1)
bonne suite
Super,
Merci beaucoup.
J'ai essayé pleins de trucs et n'ai pas pensé du tout à cette lettre car pour moi elle faisait partie de Offset. J'ai changé la lettre C en T car je ne sais pas si on peut utiliser cette même lettre pour plusieurs macros dans un même classeur.
Maintenant je comprends aussi que le déplacement Offset se fait à partir de la lettre T.
Un peu à la fois je progresse mais c'est grace à tout ceux qui veulent bien m'aider car apprendre seule avec des bouquins ce n'est pas toujours facile.
A bientôt et encore merci
Evelyne
Merci beaucoup.
J'ai essayé pleins de trucs et n'ai pas pensé du tout à cette lettre car pour moi elle faisait partie de Offset. J'ai changé la lettre C en T car je ne sais pas si on peut utiliser cette même lettre pour plusieurs macros dans un même classeur.
Maintenant je comprends aussi que le déplacement Offset se fait à partir de la lettre T.
Un peu à la fois je progresse mais c'est grace à tout ceux qui veulent bien m'aider car apprendre seule avec des bouquins ce n'est pas toujours facile.
A bientôt et encore merci
Evelyne
Bonjour Evelyne
DAns le sub ControleValidation
écris plutôt
T.Offset(0, 1) au lieu de C.Offset(0, 1)
La variable C n'est définie dans ton deuxième sous programme,
je pense que tu utilises l'offset par rapport à la cellule T.
DAns le sub ControleValidation
écris plutôt
T.Offset(0, 1) au lieu de C.Offset(0, 1)
La variable C n'est définie dans ton deuxième sous programme,
je pense que tu utilises l'offset par rapport à la cellule T.
re
bon!!
en fait avec ton code
- T est une variable déclarée de type Range (plage ou cellule)
- qui prend comme valeurs successives les cellules de la plage C6:C11
- le décalage de (0,1) se fait depuis cette cellule
bon courage
bon!!
en fait avec ton code
Dim T As Range For Each T In Range("C6:C11") If T.Value <> "" And T.Offset(0, 1) = "" Then
- T est une variable déclarée de type Range (plage ou cellule)
- qui prend comme valeurs successives les cellules de la plage C6:C11
- le décalage de (0,1) se fait depuis cette cellule
bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question