Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Affichage MsgBox quand on vide une cellule dans une colonne

2 réponses
Avatar
coincoin69
Et bein me revoila,

Pas tr=E9s compliqu=E9 me direz vous, mais cela fait aux moins 3 heures
que je planche et pas moyen.
En fait je veux que la MsgBox s'affiche =E0 la fin de cette fonction :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [bn:bn]) Is Nothing Then
If UCase(Target) <> "X" Then Range("bo" & Target.Row & ":bp" &
Target.Row & ":bq" & Target.Row).ClearContents: Exit Sub

Ce bout de code fait partie de cette macro qui fonctionne =E0 merveille
grace =E0 vous !

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [bn:bn]) Is Nothing Then
If UCase(Target) <> "X" Then Range("bo" & Target.Row & ":bp" &
Target.Row & ":bq" & Target.Row).ClearContents: Exit Sub
For Each c In Range("bo" & Target.Row & ":bp" & Target.Row & ":bq"
& Target.Row)
recommence:
If c =3D "" Then
Range(c.Address).Select
Rens =3D InputBox("Vous devez renseigner la cellule : " &
Range(c.Address).Address(0, 0), Application.UserName)
If Rens <> "" Then
c.Value =3D Rens
Else
GoTo recommence
End If
End If
Next
End If
End Sub

J'ai bien aiss=E9 de la placer de partout, de remettre des "If" pas
moyen alors si vous avez la solution je prrrrrrrrrrrrreeenddddd !

Merci d'avance de vos r=E9ponses ,le Coincoin69 vous salut bien.

2 réponses

Avatar
Jacky
Re....
Je n'ai pas compris la question
Que souhaites-tu exactement changer au code ???
Quelle msgbox ????

Code que tu peux d'ailleurs modifier de cette façon (ça fait la même chose ,
mais c'est plus propre ;o)))
'-------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a:a]) Is Nothing Then
If UCase(Target) <> "X" Then Range("b" & Target.Row & ":d" &
Target.Row).ClearContents: Exit Sub
For Each c In Range("a" & Target.Row & ":d" & Target.Row)
Do While c = ""
If c = "" Then
Range(c.Address).Select
Rens = InputBox("Vous devez renseigner la cellule : " &
Range(c.Address).Address(0, 0), Application.UserName)
If Rens <> "" Then
c.Value = Rens
End If
End If
Loop
Next
End If
End Sub
'-----------
--
Salutations
JJ


"coincoin69" a écrit dans le message de news:

Et bein me revoila,

Pas trés compliqué me direz vous, mais cela fait aux moins 3 heures
que je planche et pas moyen.
En fait je veux que la MsgBox s'affiche à la fin de cette fonction :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [bn:bn]) Is Nothing Then
If UCase(Target) <> "X" Then Range("bo" & Target.Row & ":bp" &
Target.Row & ":bq" & Target.Row).ClearContents: Exit Sub

Ce bout de code fait partie de cette macro qui fonctionne à merveille
grace à vous !

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [bn:bn]) Is Nothing Then
If UCase(Target) <> "X" Then Range("bo" & Target.Row & ":bp" &
Target.Row & ":bq" & Target.Row).ClearContents: Exit Sub
For Each c In Range("bo" & Target.Row & ":bp" & Target.Row & ":bq"
& Target.Row)
recommence:
If c = "" Then
Range(c.Address).Select
Rens = InputBox("Vous devez renseigner la cellule : " &
Range(c.Address).Address(0, 0), Application.UserName)
If Rens <> "" Then
c.Value = Rens
Else
GoTo recommence
End If
End If
Next
End If
End Sub

J'ai bien aissé de la placer de partout, de remettre des "If" pas
moyen alors si vous avez la solution je prrrrrrrrrrrrreeenddddd !

Merci d'avance de vos réponses ,le Coincoin69 vous salut bien.
Avatar
anonymousA
Bonjour,

A la fin de quelle fonction ? Telle qu'écrite ta procédure oblige
l'utilisateur à remplir successivement des cellules de "bo" à "bq" selon
la ligne où a été écrite un X et elle fonctionne correctement en raison
de l'interdiction d'aller plus loin si on ne saisit pas en colonne bn.

A+


Et bein me revoila,

Pas trés compliqué me direz vous, mais cela fait aux moins 3 heures
que je planche et pas moyen.
En fait je veux que la MsgBox s'affiche à la fin de cette fonction :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [bn:bn]) Is Nothing Then
If UCase(Target) <> "X" Then Range("bo" & Target.Row & ":bp" &
Target.Row & ":bq" & Target.Row).ClearContents: Exit Sub

Ce bout de code fait partie de cette macro qui fonctionne à merveille
grace à vous !

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [bn:bn]) Is Nothing Then
If UCase(Target) <> "X" Then Range("bo" & Target.Row & ":bp" &
Target.Row & ":bq" & Target.Row).ClearContents: Exit Sub
For Each c In Range("bo" & Target.Row & ":bp" & Target.Row & ":bq"
& Target.Row)
recommence:
If c = "" Then
Range(c.Address).Select
Rens = InputBox("Vous devez renseigner la cellule : " &
Range(c.Address).Address(0, 0), Application.UserName)
If Rens <> "" Then
c.Value = Rens
Else
GoTo recommence
End If
End If
Next
End If
End Sub

J'ai bien aissé de la placer de partout, de remettre des "If" pas
moyen alors si vous avez la solution je prrrrrrrrrrrrreeenddddd !

Merci d'avance de vos réponses ,le Coincoin69 vous salut bien.