Formule excel
Résolu
Ttomax
Messages postés
60
Date d'inscription
Statut
Membre
Dernière intervention
-
Ttomax Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
Ttomax Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Formule excel
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule somme excel colonne - Guide
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
14 réponses
Salut,
La magie en informatique n'existe pas, il n'y a que deux possibilités pour y arriver par formule et par code VBA mais si déjà les formules te posent problème ne parlons pas de VBA et le problème est sans issue
La magie en informatique n'existe pas, il n'y a que deux possibilités pour y arriver par formule et par code VBA mais si déjà les formules te posent problème ne parlons pas de VBA et le problème est sans issue
ok, à mettre dans le code de la feuille :
eric
edit: correction de la plage
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, [E15]) Is Nothing Then Exit Sub If [E15] = 1 Then [J21:J22,J24:J25] = "X" End Sub
eric
edit: correction de la plage
oops petite précision, je ne souhaite aucune formules dans les cases J20,21,24,25 , cela rend plus difficile ^^ en tout cas pour moi !! ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je conais un peu VBA, mais dans ce cas, la feuille peut etre scrutée en continue pour que dès que e15 = 1, J21,22,24 et 25 passe à "X"
Re,
clic droit sur l'onglet de ta feuille/Visualiser le code
colle ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [E15]) Is Nothing Then
If [E15] = 1 Then
[J21:J22] = "x"
[J24:J25] = "x"
End If
End If
End Sub
ou plus court
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [E15]) Is Nothing Then
If [E15] = 1 Then [J21:J22,J24:J25] = "x"
End If
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
clic droit sur l'onglet de ta feuille/Visualiser le code
colle ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [E15]) Is Nothing Then
If [E15] = 1 Then
[J21:J22] = "x"
[J24:J25] = "x"
End If
End If
End Sub
ou plus court
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [E15]) Is Nothing Then
If [E15] = 1 Then [J21:J22,J24:J25] = "x"
End If
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
merci à vous deux ^^ continuez à faire la course lol
bon cependant ca marche po, j'ai testé les deux :((
bon cependant ca marche po, j'ai testé les deux :((
Salut Eric,
Je jongle sur plusieurs discussions et il se fait tard je commence à ne plus avoir les yeux en face les trous
Bonne soirée je vais me mettre à 180°
Dans le code on pourrait ajouter l'annulation des x si la valeur en E15 est différente
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [E15]) Is Nothing Then
If [E15] = 1 Then [J21:J22,J24:J25] = "x"
If [E15] <> 1 Then [J21:J22,J24:J25] = ""
End If
End Sub
Je jongle sur plusieurs discussions et il se fait tard je commence à ne plus avoir les yeux en face les trous
Bonne soirée je vais me mettre à 180°
Dans le code on pourrait ajouter l'annulation des x si la valeur en E15 est différente
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [E15]) Is Nothing Then
If [E15] = 1 Then [J21:J22,J24:J25] = "x"
If [E15] <> 1 Then [J21:J22,J24:J25] = ""
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Union([A1], [A2], [A6], [A8])) Is Nothing Then Application.EnableEvents = False Target = "x" Application.EnableEvents = True End If End Sub
Un seul Sub Worksheet_Change par feuille, il faut tout mettre dans le même et tester les cellules concernées pour chaque petit bout de programme.
eric
une petite question, pour le remplacement des valeur par X, ca marche par contre lorsque j'efface le contenu de mes cellules concernées, la formule suivante plante...
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union([A1], [A2], [A6], [A8])) Is Nothing Then
Application.EnableEvents = False
If Target <> "" Then Target = "x"
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union([A1], [A2], [A6], [A8])) Is Nothing Then
Application.EnableEvents = False
If Target <> "" Then Target = "x"
Application.EnableEvents = True
End If
End Sub
C'est parce que tu fusionnes les cellules, ça devrait être prohibé, on arrive (presque) toujours à s'en passer.
C'est la plaie dans les macros, et même hors macro un simple copié-collé et te voilà emm...dé.
A réserver que pour les titres, et encore...
En attendant pour te dépanner :
If Target.Range("A1") <> "" Then Target = "x"
ça devrait le faire, mais évite vraiment la fusion pour tes tableaux.
Et plutôt que de lister toutes les cellules, regroupe-les par plage :
If Not Intersect(Target, Union([G11:K15], ...
eric
C'est la plaie dans les macros, et même hors macro un simple copié-collé et te voilà emm...dé.
A réserver que pour les titres, et encore...
En attendant pour te dépanner :
If Target.Range("A1") <> "" Then Target = "x"
ça devrait le faire, mais évite vraiment la fusion pour tes tableaux.
Et plutôt que de lister toutes les cellules, regroupe-les par plage :
If Not Intersect(Target, Union([G11:K15], ...
eric
re moi ^^ g un soucis,
je souhaite pareil une macro qui me surveille si en case A32 g "Pas de réglage",
d34,d35 i34,i35 et m34,35 pas à X
g tester plusiur chose par rapoprt a la macro de dessus mais sans succès....
je souhaite pareil une macro qui me surveille si en case A32 g "Pas de réglage",
d34,d35 i34,i35 et m34,35 pas à X
g tester plusiur chose par rapoprt a la macro de dessus mais sans succès....