Vider une plage de cellules en fonction du contenu d'une autre cellule et obligation de remplir des cellules
3 réponses
coincoin69
Bonjour =E0 toutes et =E0 tous,
Petit nouveau dans ce groupe de discution que je parcourais depuis de
nombreux jour, j'ai saut=E9 le pas et me suis inscri.
Plus d=E9butant que moi en VBA tu meurs !!!!!!!!
Voila mon chti probl=E8me :
Dans la colonne ("A:A") se trouve des cellules soit elles contiennent
la valeur "x" soit elles restent vides (comme une case =E0 cocher).
1) _SI la valeur de la cellule en ("A:A") est "x" l'utilisateur doit
obligatoirement saisir des donn=E9es dans les cellules contigues
("B,C,D"), =E9ventuellement avec une MsgBox du type :"Veuillez remplir
votre nom".
2) _ Si la valeur de la cellule en ("A:A") est "" (vide) les cellules
contigues ("B,C,D") doivent alors aplliqu=E9es : ClearContents pour que
l'ensemble de la plage soit vide et =E0 nouveaux utilisable.
Bein voila, je crois que j'ai tout di, je retourne me torturer le
cerveau =E0 grand coup de VBA, merci par avance de vos r=E9ponses.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacky
Bonjour,
Essaie ceci: '--------- 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("b" & Target.Row & ":d" & 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 '------------- -- Salutations JJ
"coincoin69" a écrit dans le message de news:
Bonjour à toutes et à tous,
Petit nouveau dans ce groupe de discution que je parcourais depuis de nombreux jour, j'ai sauté le pas et me suis inscri.
Plus débutant que moi en VBA tu meurs !!!!!!!!
Voila mon chti problème :
Dans la colonne ("A:A") se trouve des cellules soit elles contiennent la valeur "x" soit elles restent vides (comme une case à cocher). 1) _SI la valeur de la cellule en ("A:A") est "x" l'utilisateur doit obligatoirement saisir des données dans les cellules contigues ("B,C,D"), éventuellement avec une MsgBox du type :"Veuillez remplir votre nom". 2) _ Si la valeur de la cellule en ("A:A") est "" (vide) les cellules contigues ("B,C,D") doivent alors aplliquées : ClearContents pour que l'ensemble de la plage soit vide et à nouveaux utilisable.
Bein voila, je crois que j'ai tout di, je retourne me torturer le cerveau à grand coup de VBA, merci par avance de vos réponses.
Le Coincoin69 vous salut bien.
Bonjour,
Essaie ceci:
'---------
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("b" & Target.Row & ":d" & 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
'-------------
--
Salutations
JJ
"coincoin69" <stgog@tiscali.fr> a écrit dans le message de news:
1170488400.071110.120950@j27g2000cwj.googlegroups.com...
Bonjour à toutes et à tous,
Petit nouveau dans ce groupe de discution que je parcourais depuis de
nombreux jour, j'ai sauté le pas et me suis inscri.
Plus débutant que moi en VBA tu meurs !!!!!!!!
Voila mon chti problème :
Dans la colonne ("A:A") se trouve des cellules soit elles contiennent
la valeur "x" soit elles restent vides (comme une case à cocher).
1) _SI la valeur de la cellule en ("A:A") est "x" l'utilisateur doit
obligatoirement saisir des données dans les cellules contigues
("B,C,D"), éventuellement avec une MsgBox du type :"Veuillez remplir
votre nom".
2) _ Si la valeur de la cellule en ("A:A") est "" (vide) les cellules
contigues ("B,C,D") doivent alors aplliquées : ClearContents pour que
l'ensemble de la plage soit vide et à nouveaux utilisable.
Bein voila, je crois que j'ai tout di, je retourne me torturer le
cerveau à grand coup de VBA, merci par avance de vos réponses.
Essaie ceci: '--------- 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("b" & Target.Row & ":d" & 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 '------------- -- Salutations JJ
"coincoin69" a écrit dans le message de news:
Bonjour à toutes et à tous,
Petit nouveau dans ce groupe de discution que je parcourais depuis de nombreux jour, j'ai sauté le pas et me suis inscri.
Plus débutant que moi en VBA tu meurs !!!!!!!!
Voila mon chti problème :
Dans la colonne ("A:A") se trouve des cellules soit elles contiennent la valeur "x" soit elles restent vides (comme une case à cocher). 1) _SI la valeur de la cellule en ("A:A") est "x" l'utilisateur doit obligatoirement saisir des données dans les cellules contigues ("B,C,D"), éventuellement avec une MsgBox du type :"Veuillez remplir votre nom". 2) _ Si la valeur de la cellule en ("A:A") est "" (vide) les cellules contigues ("B,C,D") doivent alors aplliquées : ClearContents pour que l'ensemble de la plage soit vide et à nouveaux utilisable.
Bein voila, je crois que j'ai tout di, je retourne me torturer le cerveau à grand coup de VBA, merci par avance de vos réponses.
Le Coincoin69 vous salut bien.
Daniel
Bonjour. Essaie :
Sub test() Dim c As Range, Plage As Range, Ligne As Long Set Plage = Range("A1", Range("A65536").End(xlUp)) Ligne = Plage.Rows.Count + 1 Range(Cells(Ligne, 1), Cells(65536, 4)).ClearContents For Each c In Plage If c.Value = "x" Then Do While c.Offset(0, 1) = "" c.Offset(0, 1) = InputBox("Entrez le nom") If c.Offset(0, 1) = "" Then MsgBox "saisie obligatoire" End If Loop Do While c.Offset(0, 2) = "" c.Offset(0, 2) = InputBox("Entrez le prénom") If c.Offset(0, 2) = "" Then MsgBox "saisie obligatoire" End If Loop Do While c.Offset(0, 3) = "" c.Offset(0, 3) = InputBox("Entrez le code postal") If c.Offset(0, 3) = "" Then MsgBox "saisie obligatoire" End If Loop End If Next c End Sub
Cordialement. Daniel "coincoin69" a écrit dans le message de news:
Bonjour à toutes et à tous,
Petit nouveau dans ce groupe de discution que je parcourais depuis de nombreux jour, j'ai sauté le pas et me suis inscri.
Plus débutant que moi en VBA tu meurs !!!!!!!!
Voila mon chti problème :
Dans la colonne ("A:A") se trouve des cellules soit elles contiennent la valeur "x" soit elles restent vides (comme une case à cocher). 1) _SI la valeur de la cellule en ("A:A") est "x" l'utilisateur doit obligatoirement saisir des données dans les cellules contigues ("B,C,D"), éventuellement avec une MsgBox du type :"Veuillez remplir votre nom". 2) _ Si la valeur de la cellule en ("A:A") est "" (vide) les cellules contigues ("B,C,D") doivent alors aplliquées : ClearContents pour que l'ensemble de la plage soit vide et à nouveaux utilisable.
Bein voila, je crois que j'ai tout di, je retourne me torturer le cerveau à grand coup de VBA, merci par avance de vos réponses.
Le Coincoin69 vous salut bien.
Bonjour.
Essaie :
Sub test()
Dim c As Range, Plage As Range, Ligne As Long
Set Plage = Range("A1", Range("A65536").End(xlUp))
Ligne = Plage.Rows.Count + 1
Range(Cells(Ligne, 1), Cells(65536, 4)).ClearContents
For Each c In Plage
If c.Value = "x" Then
Do While c.Offset(0, 1) = ""
c.Offset(0, 1) = InputBox("Entrez le nom")
If c.Offset(0, 1) = "" Then
MsgBox "saisie obligatoire"
End If
Loop
Do While c.Offset(0, 2) = ""
c.Offset(0, 2) = InputBox("Entrez le prénom")
If c.Offset(0, 2) = "" Then
MsgBox "saisie obligatoire"
End If
Loop
Do While c.Offset(0, 3) = ""
c.Offset(0, 3) = InputBox("Entrez le code postal")
If c.Offset(0, 3) = "" Then
MsgBox "saisie obligatoire"
End If
Loop
End If
Next c
End Sub
Cordialement.
Daniel
"coincoin69" <stgog@tiscali.fr> a écrit dans le message de news:
1170488400.071110.120950@j27g2000cwj.googlegroups.com...
Bonjour à toutes et à tous,
Petit nouveau dans ce groupe de discution que je parcourais depuis de
nombreux jour, j'ai sauté le pas et me suis inscri.
Plus débutant que moi en VBA tu meurs !!!!!!!!
Voila mon chti problème :
Dans la colonne ("A:A") se trouve des cellules soit elles contiennent
la valeur "x" soit elles restent vides (comme une case à cocher).
1) _SI la valeur de la cellule en ("A:A") est "x" l'utilisateur doit
obligatoirement saisir des données dans les cellules contigues
("B,C,D"), éventuellement avec une MsgBox du type :"Veuillez remplir
votre nom".
2) _ Si la valeur de la cellule en ("A:A") est "" (vide) les cellules
contigues ("B,C,D") doivent alors aplliquées : ClearContents pour que
l'ensemble de la plage soit vide et à nouveaux utilisable.
Bein voila, je crois que j'ai tout di, je retourne me torturer le
cerveau à grand coup de VBA, merci par avance de vos réponses.
Sub test() Dim c As Range, Plage As Range, Ligne As Long Set Plage = Range("A1", Range("A65536").End(xlUp)) Ligne = Plage.Rows.Count + 1 Range(Cells(Ligne, 1), Cells(65536, 4)).ClearContents For Each c In Plage If c.Value = "x" Then Do While c.Offset(0, 1) = "" c.Offset(0, 1) = InputBox("Entrez le nom") If c.Offset(0, 1) = "" Then MsgBox "saisie obligatoire" End If Loop Do While c.Offset(0, 2) = "" c.Offset(0, 2) = InputBox("Entrez le prénom") If c.Offset(0, 2) = "" Then MsgBox "saisie obligatoire" End If Loop Do While c.Offset(0, 3) = "" c.Offset(0, 3) = InputBox("Entrez le code postal") If c.Offset(0, 3) = "" Then MsgBox "saisie obligatoire" End If Loop End If Next c End Sub
Cordialement. Daniel "coincoin69" a écrit dans le message de news:
Bonjour à toutes et à tous,
Petit nouveau dans ce groupe de discution que je parcourais depuis de nombreux jour, j'ai sauté le pas et me suis inscri.
Plus débutant que moi en VBA tu meurs !!!!!!!!
Voila mon chti problème :
Dans la colonne ("A:A") se trouve des cellules soit elles contiennent la valeur "x" soit elles restent vides (comme une case à cocher). 1) _SI la valeur de la cellule en ("A:A") est "x" l'utilisateur doit obligatoirement saisir des données dans les cellules contigues ("B,C,D"), éventuellement avec une MsgBox du type :"Veuillez remplir votre nom". 2) _ Si la valeur de la cellule en ("A:A") est "" (vide) les cellules contigues ("B,C,D") doivent alors aplliquées : ClearContents pour que l'ensemble de la plage soit vide et à nouveaux utilisable.
Bein voila, je crois que j'ai tout di, je retourne me torturer le cerveau à grand coup de VBA, merci par avance de vos réponses.
Le Coincoin69 vous salut bien.
coincoin69
Un Suuuuuuuuuuper Graaaaaaaaaaand merci à vous,
Cela fonctionne super bien, maintenant à moi de l'adapter exactement à ma feuille de calcul, il faut quand même que je mi colle pour apprendre il n'y a pas mieux je crois pour apprendre , c'est en forgant que que l'on devient forgeron ! Donc il n'est pas dit que je ne revienne pas pour une chtite info.
Bon Week à vous et encorre merci.
Le Coincoin698
Un Suuuuuuuuuuper Graaaaaaaaaaand merci à vous,
Cela fonctionne super bien, maintenant à moi de l'adapter exactement à
ma feuille de calcul, il faut quand même que je mi colle pour
apprendre il n'y a pas mieux je crois pour apprendre , c'est en
forgant que que l'on devient forgeron !
Donc il n'est pas dit que je ne revienne pas pour une chtite info.
Cela fonctionne super bien, maintenant à moi de l'adapter exactement à ma feuille de calcul, il faut quand même que je mi colle pour apprendre il n'y a pas mieux je crois pour apprendre , c'est en forgant que que l'on devient forgeron ! Donc il n'est pas dit que je ne revienne pas pour une chtite info.