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

Ajouter plusieurs cellules dans VBA Range

16 réponses
Avatar
Manon
Bonjour,

J'ai envoyé un message en début de semaine et je suis presqu'au résultat
souhaité.
Merci à tous ceux qui m'ont répondu.

Mon problème maintenant c'est que je veux ajouter d'autres cellules à la
proposition de MichDenis. J'aimerais ajouter les cellules I5:I50, L5:L50,
O5:O50 et R5:R50 à la formule suivante, ligne: Set Rg = Intersect(Target,
Range("C5:C50", "F5:F50")) J'ai pu inscrire F5:F50 mais je ne suis pas
capable d'inscrire les autres.. comment faire ?

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range
On Error Resume Next
Set Rg = Intersect(Target, Range("C5:C50", "F5:F50"))
If Not Rg Is Nothing Then
For Each C In Rg
If IsNumeric(C) And C >= 1 Then
r = Application.Match(C, Range("V1:V50"), 0)
If Not IsError(r) Then
Application.EnableEvents = False
Range("W" & r).Copy C.Offset(, 1)
Application.EnableEvents = True
Else
Err = 0
C.Offset(, 1).Clear
End If
End If
Next
End If

End Sub


Sub test()
Range("$V$1:$W$50").Select
End Sub

Je viens de découvrir le VBA et c'est fantastique... mais je ne m'y connais
pas du tout...

Une autre petite question si vous me permettez:

J'aimerais que le chiffre que j'inscris dans les cellules U5:U50 soit
reporté dans les cellules C, F, I, L, O et R de la même ligne.

Merci à tous ceux qui me répondront.


Manon

6 réponses

1 2
Avatar
JLuc
*Bonjour Manon*,
Je suis desole, je cherche, je cherche...mais je trouve pas ! :o)
Je suis pas tres doue concernant les formats. J'espere que quelqu'un
viendra a notre secours ! T'inquiete pas, je laisse pas tomber ;o)

Je ne veux pas voir la valeur dans les colonnes C,F,I,L,O et R c'est pour
cela que j'ai mis la couleur blanche... mais la valeur de ces colonnes donne
une réponse dans la colonne suivante et c'est dans cette colonne que
j'aimerais voir apparaitre les réponses en gras et en couleur (colonne D, G,
J, M, P)

La couleur dépend du chiffre inscrit dans les colonnes C, F,I,....

Si j'inscris moi-meme le chiffre dans ces colonnes, la mise en forme
apparait (gras et couleur) mais lorsque le chiffre vient du résultat de ma
formule la mise en forme ne se fait pas.

Merci pour ta patience,

Manon


*Bonjour Manon*,
Tu as mis la police avec une couleur blanche, c'est pour ca que les
valeurs n'apparaissent pas, mais elles sont bien la !

Rebonjour JLuc

Ce que je souhaite, c'est inscrire le chiffre dans la colonne U et le
résultat apparait dans les colonnes C, F, I, L, O et R ainsi que le format
du résultat. Donc avec le gras et la couleur du nom.

Présentement le résultat s'inscrit mais sans les couleurs.

Merci encore


*Bonjour Manon*,
Je t'avoue ne pas comprendre ton pb. De quel format parles-tu ?

Par contre, si j'inscris le chiffre dans les colonnes C, F, I, L, O et R,
le format se fait.

Merci de m'aider.
Je veux bien, mais il faut que je comprenne avant :/


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O





Avatar
Manon
Bon matin JLuc,

Merci de ne pas désespérer....

J'ai tenté de trouver une solution en essayant des trucs et malheureusement,
ça ne fonctionne toujours pas.

Existe-t-il une formule pour demander à Excel de refaire les calculs ? Un
genre de "Refresh". Je comprends vraiment pas pourquoi ça ne fonctionne pas
en inscrivant le chiffre dans la colonne U ... mais bon, l'informatique
quelques fois c'est comme cela ; y'a rien à comprendre !

J'ai posté un autre message hier, mais il n'y a pas de réponse.

Merci encore,

Manon
Avatar
JLuc
*Bonjour Manon*,
Ca y est, j'ai trouve UNE solution. :')
J'irai pas jusqu'a dire que c'est la meilleur, mais, celle la, je l'ai
trouveé !

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
On Error Resume Next
If Not Intersect(Target, Range("U5:U50")) Is Nothing Then
If Target > 0 Then
place = Application.Match(Target, Range("V1:V40"), 0) - 1
Cells(Range("V1").Offset(place, 0).Row, 23).Copy _
Destination:Îlls(Target.Row, 4)
Cells(Range("V1").Offset(place, 0).Row, 23).Copy _
Destination:Îlls(Target.Row, 7)
Cells(Range("V1").Offset(place, 0).Row, 23).Copy _
Destination:Îlls(Target.Row, 10)
Cells(Range("V1").Offset(place, 0).Row, 23).Copy _
Destination:Îlls(Target.Row, 13)
Cells(Range("V1").Offset(place, 0).Row, 23).Copy _
Destination:Îlls(Target.Row, 16)
Cells(Range("V1").Offset(place, 0).Row, 23).Copy _
Destination:Îlls(Target.Row, 19)
Else
Cells(Target.Row, 4) = ""
Cells(Target.Row, 7) = ""
Cells(Target.Row, 10) = ""
Cells(Target.Row, 13) = ""
Cells(Target.Row, 16) = ""
Cells(Target.Row, 19) = ""
End If
End If
End Sub

Voila le lien : http://cjoint.com/?eeujhP34Gb
Dis nous si ca convient ;-)

Bon matin JLuc,

Merci de ne pas désespérer....

J'ai tenté de trouver une solution en essayant des trucs et malheureusement,
ça ne fonctionne toujours pas.

Existe-t-il une formule pour demander à Excel de refaire les calculs ? Un
genre de "Refresh". Je comprends vraiment pas pourquoi ça ne fonctionne pas
en inscrivant le chiffre dans la colonne U ... mais bon, l'informatique
quelques fois c'est comme cela ; y'a rien à comprendre !

J'ai posté un autre message hier, mais il n'y a pas de réponse.

Merci encore,

Manon


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
Manon
Youppi !!

C'est exactement ce que je voulais, la mise en forme se change au fur et à
mesure que je change le chiffre dans la colonne U.. mais il y a encore un
mais.. sniff... sniff..

Il arrive que la personne n'ait pas à travailler les 5 journées, je dois
donc pouvoir inscrire un chiffre dans les colonnes (C,F,I,L,O et R) pour
changer le nom dans une journée souhaitée.

Il faudrait que le Else, puisse dire :

Else
Cells(Target.Row, 4) = "" Colonne 3
Cells(Target.Row, 7) = "" Colonne 6
Cells(Target.Row, 10) = "" Colonne 9
Cells(Target.Row, 13) = "" Colonne 12
Cells(Target.Row, 16) = "" Colonne 15
End If
End If
End Sub

Je sais que tu as dû passer beaucoup de temps pour m'aider et je t'en
remercie beaucoup. Tu es très généreux d'aider comme cela. C'est vraiment
super de voir que ça peut fonctionner... je commencais à ne plus y croire.

Bonne soirée à toi,

Manon
Avatar
JLuc
*Bonjour Manon*,
Dans ce cas, rajoute :
If Not Intersect(Target, Union(Range("C5:C50"), _
Range("F5:F50"), _
Range("I5:I50"), _
Range("L5:L50"), _
Range("O5:O50"), _
Range("R5:R50"))) Is Nothing Then
place = Application.Match(Target, Range("V1:V40"), 0) - 1
Cells(Range("V1").Offset(place, 0).Row, 23).Copy _
Destination:=Target.Offset(0, 1)
End If
Juste avant le "End Sub" B-)

Youppi !!

C'est exactement ce que je voulais, la mise en forme se change au fur et à
mesure que je change le chiffre dans la colonne U.. mais il y a encore un
mais.. sniff... sniff..

Il arrive que la personne n'ait pas à travailler les 5 journées, je dois
donc pouvoir inscrire un chiffre dans les colonnes (C,F,I,L,O et R) pour
changer le nom dans une journée souhaitée.

Il faudrait que le Else, puisse dire :

Else
Cells(Target.Row, 4) = "" Colonne 3
Cells(Target.Row, 7) = "" Colonne 6
Cells(Target.Row, 10) = "" Colonne 9
Cells(Target.Row, 13) = "" Colonne 12
Cells(Target.Row, 16) = "" Colonne 15
End If
End If
End Sub

Je sais que tu as dû passer beaucoup de temps pour m'aider et je t'en
remercie beaucoup. Tu es très généreux d'aider comme cela. C'est vraiment
super de voir que ça peut fonctionner... je commencais à ne plus y croire.

Bonne soirée à toi,

Manon


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
Manon
WoWWWW et Re-Woooowwww

C'est exactement ce que je souhaitais... vraiment !!

Je suis hyper contente du résultat.

Mon travail en sera facilité grandement !

Gros merci à toi JLuc...

Bisou amical,

Manon


*Bonjour Manon*,
Dans ce cas, rajoute :
If Not Intersect(Target, Union(Range("C5:C50"), _
Range("F5:F50"), _
Range("I5:I50"), _
Range("L5:L50"), _
Range("O5:O50"), _
Range("R5:R50"))) Is Nothing Then
place = Application.Match(Target, Range("V1:V40"), 0) - 1
Cells(Range("V1").Offset(place, 0).Row, 23).Copy _
Destination:=Target.Offset(0, 1)
End If
Juste avant le "End Sub" B-)

Youppi !!

C'est exactement ce que je voulais, la mise en forme se change au fur et à
mesure que je change le chiffre dans la colonne U.. mais il y a encore un
mais.. sniff... sniff..

Il arrive que la personne n'ait pas à travailler les 5 journées, je dois
donc pouvoir inscrire un chiffre dans les colonnes (C,F,I,L,O et R) pour
changer le nom dans une journée souhaitée.

Il faudrait que le Else, puisse dire :

Else
Cells(Target.Row, 4) = "" Colonne 3
Cells(Target.Row, 7) = "" Colonne 6
Cells(Target.Row, 10) = "" Colonne 9
Cells(Target.Row, 13) = "" Colonne 12
Cells(Target.Row, 16) = "" Colonne 15
End If
End If
End Sub

Je sais que tu as dû passer beaucoup de temps pour m'aider et je t'en
remercie beaucoup. Tu es très généreux d'aider comme cela. C'est vraiment
super de voir que ça peut fonctionner... je commencais à ne plus y croire.

Bonne soirée à toi,

Manon


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O






1 2