OVH Cloud OVH Cloud

Remplissage auto de cellules par VBA sur condition

5 réponses
Avatar
Domi
Bonsoir,
J'ai dans la plage $K$5:$K$200, nommée "LaPlage", une règle de validation
qui m'impose un choix Oui/Non.

Je voudrais que pour chaque changement de valeur dans LaPlage si la valeur
saisie dans LaPlage est "Oui"
Le contenu des 2 cellules adjacentes à droite soit copié 3 cellules à
droite. Si c'est non, rien.

Exemple concret :
Si je saisie "Oui" dans K25, O25 prend la valeur de L25 ET P25 prend la
valeur
de M25, ou dit autrement la paire OP prend la valeur de la paire LM.
Si je saisie non, il ne se passe rien.

Je tourne en rond depuis un moment...

Merci pour votre aide
Domi

5 réponses

Avatar
Pounet95
Bonjour,
une formule toute simple :
en O5
=si(k5="Oui";L5;"")

recopier en M5
selectionner L5:M5
recopier jusqu'à L2000


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"Domi" a écrit dans le message de news:
%
Bonsoir,
J'ai dans la plage $K$5:$K$200, nommée "LaPlage", une règle de validation
qui m'impose un choix Oui/Non.

Je voudrais que pour chaque changement de valeur dans LaPlage si la
valeur
saisie dans LaPlage est "Oui"
Le contenu des 2 cellules adjacentes à droite soit copié 3 cellules à
droite. Si c'est non, rien.

Exemple concret :
Si je saisie "Oui" dans K25, O25 prend la valeur de L25 ET P25 prend la
valeur
de M25, ou dit autrement la paire OP prend la valeur de la paire LM.
Si je saisie non, il ne se passe rien.

Je tourne en rond depuis un moment...

Merci pour votre aide
Domi





Avatar
Pounet95
Re,
Viens de voir que c'était en VBA

Range("O5:P200").FormulaR1C1 = "=IF(RC[-4]=""oui"",RC[-4],"""")"

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"Domi" a écrit dans le message de news:
%
Bonsoir,
J'ai dans la plage $K$5:$K$200, nommée "LaPlage", une règle de validation
qui m'impose un choix Oui/Non.

Je voudrais que pour chaque changement de valeur dans LaPlage si la
valeur
saisie dans LaPlage est "Oui"
Le contenu des 2 cellules adjacentes à droite soit copié 3 cellules à
droite. Si c'est non, rien.

Exemple concret :
Si je saisie "Oui" dans K25, O25 prend la valeur de L25 ET P25 prend la
valeur
de M25, ou dit autrement la paire OP prend la valeur de la paire LM.
Si je saisie non, il ne se passe rien.

Je tourne en rond depuis un moment...

Merci pour votre aide
Domi





Avatar
Pounet95
Re et Re ( fatigué, ferais mieux d'aller me coucher ... )

Ca devrait être mieux avec ça :

Range("O5:O200").FormulaR1C1 = "=IF(RC[-4]=""oui"",RC[-3],"""")"
Range("P5:P200").FormulaR1C1 = "=IF(RC[-5]=""oui"",RC[-3],"""")"


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"Domi" a écrit dans le message de news:
%
Bonsoir,
J'ai dans la plage $K$5:$K$200, nommée "LaPlage", une règle de validation
qui m'impose un choix Oui/Non.

Je voudrais que pour chaque changement de valeur dans LaPlage si la
valeur
saisie dans LaPlage est "Oui"
Le contenu des 2 cellules adjacentes à droite soit copié 3 cellules à
droite. Si c'est non, rien.

Exemple concret :
Si je saisie "Oui" dans K25, O25 prend la valeur de L25 ET P25 prend la
valeur
de M25, ou dit autrement la paire OP prend la valeur de la paire LM.
Si je saisie non, il ne se passe rien.

Je tourne en rond depuis un moment...

Merci pour votre aide
Domi





Avatar
Trirème
Bonjour Domi,

Une possibilité par du code évènementiel.
A saisir dans le code de la feuille où se trouve 'LaPlage' et non pas
dans un module classique :

Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target
If c.Column = 11 Then
r = c.Row
If c.Value = "Oui" Or c.Value = "oui" Then
Cells(r, 15) = Cells(r, 12)
Cells(r, 16) = Cells(r, 13)
Else
Cells(r, 15).ClearContents
Cells(r, 16).ClearContents
End If
End If
Next c
End Sub

[HS]
NOTEZ TOUS que ce simple code est MON PREMIER code évènementiel réalisé
tout seul suite aux nombreuses leçons que j'ai pu lire sur ce forum.
La question de Domi m'a obligé à comprendre les subtilités de la Target.
En plus il a l'air de fonctionner.
Bref, pour moi c'est un... évènement.
/[HS]

Cordialement,
Trirème

Bonsoir,
J'ai dans la plage $K$5:$K$200, nommée "LaPlage", une règle de validation
qui m'impose un choix Oui/Non.

Je voudrais que pour chaque changement de valeur dans LaPlage si la valeur
saisie dans LaPlage est "Oui"
Le contenu des 2 cellules adjacentes à droite soit copié 3 cellules à
droite. Si c'est non, rien.

Exemple concret :
Si je saisie "Oui" dans K25, O25 prend la valeur de L25 ET P25 prend la
valeur
de M25, ou dit autrement la paire OP prend la valeur de la paire LM.
Si je saisie non, il ne se passe rien.

Je tourne en rond depuis un moment...

Merci pour votre aide
Domi





Avatar
Domi
Réussite totale, très bons débuts ;o)
Merci beaucoup
Domi

"Trirème" a écrit dans le message de
news:
Bonjour Domi,

Une possibilité par du code évènementiel.
A saisir dans le code de la feuille où se trouve 'LaPlage' et non pas
dans un module classique :

Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target
If c.Column = 11 Then
r = c.Row
If c.Value = "Oui" Or c.Value = "oui" Then
Cells(r, 15) = Cells(r, 12)
Cells(r, 16) = Cells(r, 13)
Else
Cells(r, 15).ClearContents
Cells(r, 16).ClearContents
End If
End If
Next c
End Sub

[HS]
NOTEZ TOUS que ce simple code est MON PREMIER code évènementiel réalisé
tout seul suite aux nombreuses leçons que j'ai pu lire sur ce forum.
La question de Domi m'a obligé à comprendre les subtilités de la Target.
En plus il a l'air de fonctionner.
Bref, pour moi c'est un... évènement.
/[HS]

Cordialement,
Trirème

Bonsoir,
J'ai dans la plage $K$5:$K$200, nommée "LaPlage", une règle de
validation


qui m'impose un choix Oui/Non.

Je voudrais que pour chaque changement de valeur dans LaPlage si la
valeur


saisie dans LaPlage est "Oui"
Le contenu des 2 cellules adjacentes à droite soit copié 3 cellules à
droite. Si c'est non, rien.

Exemple concret :
Si je saisie "Oui" dans K25, O25 prend la valeur de L25 ET P25 prend la
valeur
de M25, ou dit autrement la paire OP prend la valeur de la paire LM.
Si je saisie non, il ne se passe rien.

Je tourne en rond depuis un moment...

Merci pour votre aide
Domi