Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

affichage automatique

A

ancat

Guest
Bonsoir,

en désespoir de cause, je n'arrive pas a trouver ....
je demande ici votre aide

Voila mon problème, j'ai un fichier du type de la pièce jointe(en plus gros mais c'est des repetitions.

Partons pour la première ligne:

Je voudrais que lorsqu'à la validation de la donnée que je saisis dans la première colonne, il s'affiche un "1" dans la seconde colonne
Et que dans la troisième colonne s'affiche le premier choix de ma liste de choix c'est à dire "moderne".

Enfin je désirais que cela s'effectue sur tous les lignes...

Comment faire?

Dans l'attente d'une réponse qui me remonteras le moral.
Je vous dis merciiiiiiii.

Bye Ancat
 

Pièces jointes

  • test.zip
    1.7 KB · Affichages: 16
  • test.zip
    1.7 KB · Affichages: 14
  • test.zip
    1.7 KB · Affichages: 15
D

Dan

Guest
Bonsoir Ancat,

si j'ai bien compris ton pb, il te suffit de placer ces formules :

en B2 : =SI(A2>0;1;" ")
en C2 : =SI(B2>0;"Moderne";" ")

Ensuite tu recopies ces formules vers le bas.

Est-ce cela que tu veux faire ?

@+ Dan
 
R

Robert

Guest
Salut Ancat, salut Dan salut le forum,

C'est la même solution que Dan version commentée.

J’ai utilisé des formules conditionnelles dans les colonnes B et C. Je te les détaille si tu n’as pas trop l’habitude, la syntaxe est =Si(condition;valeur si condition vrai;valeur si condition fausse)
Dans B : =Si(A2="";"";1) qui se traduit par : Si A2 est vide ("") ; alors égale à vide ; sinon égal à 1.
Dans C : Si(A2="";"";E8) qui se traduit par : Si A2 est vide ("") ; alors égale à vide ; sinon égal à cellule E8. J’ai été obligé d’annuler la validation pour écrire les formules puis de la remettre. Recopier ces formules vers le bas.

Le problème est que quand tu choisis dans la colonne C une autre valeur que moderne cela efface la formule et je n’ai malheureusement pas de solution à ce problème.

À plus,

Robert
 
A

ancat

Guest
Rebonsoir,

je n'ai qu'un mot à dire GENIAL,.................................;

MERCI BEAUCOUP, je cherchais beaucoup plus compliqué,...

BYE Ancat
PS:Si vous trouvez une solution pour que la formule reste lors d'un choix dans une liste faites moi signe,je cherche de mon côté et encore merci...
 
R

Robert

Guest
Re salut Ancat, Dan, salut le forum,

Une solution avec VBA qui permet de supprimer la formule (et la validation)dans la colonne C puisque c'est le code qui va le faire si la cellule de la colonne A est non vide.

Le problème est qu'il faut que tu copies le code ci-dessous dans un endroit précis. Si tu n'as jamais ouvert l'Éditeur Visual Basic, tu risques d'être un peu désorientée. Mais si tu suis à la lettre la manip ci-dessous tu n'auras pas de problème.
Copie le code ci-dessous. Ouvre ton fichier original, ouvre l'Éditeur Visual Basic ([Alt]+[F11]), il se compose de deux parties à gauche et d'un grand cadre à droite. Dans la partie en haut à gauche, double-clique dans la feuille contenant ton tableau (dans le fichier test.xls c'est la Feuil1 (Feuil1)). Maintenant colle le code dans le grand cadre de droite.

À plus, Robert

Private Sub Worksheet_Change(ByVal Target As Range) 'à chaque modification
'cond1tion 1 : n'agit que si la modification a lieu dans la colonne A
If Not Application.Intersect(Target, Range("A2:A" & Range("A65536").End(xlUp).Row)) Is Nothing Then

If Target.Value <> "" Then 'condition 2 :si cellule active différente du vide
Target.Offset(0, 2) = "moderne" 'écrit "moderne" deux cellules à coté
With Target.Offset(0, 2).Validation 'crée la validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$E$8:$E$11"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Else 'sinon (si tu effaces par exemple)
With Target.Offset(0, 2) 'efface valeur et validation de la deuxième cellule à coté
.Value = ""
.Validation.Delete
End With
End If 'fin condition 2

End If 'fin condition 1
End Sub
 
R

Robert

Guest
Encore moi... re à tous,

Si tu dois utiliser le VBA autant qu'il fassse tout... colle ou remplace (voir méthode dans post précédent) les codes ci-dessous.

Plus besoin de formules ni en B ni en C. Tu tapes juste le nom du CD et tu choisis le style.

Private Sub Worksheet_Change(ByVal Target As Range) 'à chaque modification
'cond1tion 1 : n'agit que si la modification a lieu dans la colonne A
If Target.Address = "$A$1" Then Exit Sub 'sauf pour A1
If Not Application.Intersect(Target, Columns(1)) Is Nothing Then

If Target.Value <> "" Then 'condition 2 :si cellule active différente du vide
Target.Offset(0, 1).Value = 1 'écrit 1 une cellule à coté
Target.Offset(0, 2) = "moderne" 'écrit "moderne" deux cellules à coté
With Target.Offset(0, 2)
With .Validation 'crée la validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$E$8:$E$11"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
.Select
End With
Else 'sinon (si tu effaces par exemple)
Target.Offset(0, 1).Value = "" 'efface le 1
With Target.Offset(0, 2)
.Value = "" 'efface le style
.Validation.Delete 'supprime la validation
End With
End If 'fin condition 2

End If 'fin condition 1
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…