Décaler plage de cellule vers la gauche avec condition
Résolu
gougouks
Messages postés
9
Statut
Membre
-
gougouks Messages postés 9 Statut Membre -
gougouks Messages postés 9 Statut Membre -
Bonjour à tous,
Je sollicite votre aide car je ne maîtrise pas du tout VBA et que c'est surement grâce à VBA que mon problème sera résolu.
L'illustration de mon problème est le suivant:

Avant le second tableau, je demande le nombre de personne (il peut y en avoir au plus 2).
Ce que je veux est: Si la cellule B9 contient 1 (donc 1personne) alors:
--->Supprimer/masquer UNIQUEMENT les cellules C10 à C16 qui concernent la personne 2;
--->Décaler la plage de cellules D10:H16 vers la gauche (c'est à dire remplacer/prendre la place des cellules C10 à C16.
--->Garder la mise en forme de la plage de cellule à décaler.
Comme il y a des tableaux au-dessus et en dessous du tableau concerné par les modifications, une suppression de la colonne C n'est pas à envisager.
J'espère avoir été claire dans la description de mon problème :)
Merci beaucoup par avance pour votre aide :D
Je sollicite votre aide car je ne maîtrise pas du tout VBA et que c'est surement grâce à VBA que mon problème sera résolu.
L'illustration de mon problème est le suivant:
Avant le second tableau, je demande le nombre de personne (il peut y en avoir au plus 2).
Ce que je veux est: Si la cellule B9 contient 1 (donc 1personne) alors:
--->Supprimer/masquer UNIQUEMENT les cellules C10 à C16 qui concernent la personne 2;
--->Décaler la plage de cellules D10:H16 vers la gauche (c'est à dire remplacer/prendre la place des cellules C10 à C16.
--->Garder la mise en forme de la plage de cellule à décaler.
Comme il y a des tableaux au-dessus et en dessous du tableau concerné par les modifications, une suppression de la colonne C n'est pas à envisager.
J'espère avoir été claire dans la description de mon problème :)
Merci beaucoup par avance pour votre aide :D
A voir également:
- Hachurer cellule excel
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Proteger cellule excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne dans une cellule excel - Guide
1 réponse
Bonjour,
Ton explication est très claire. Je te propose :
à placer dans le code associée à ladite feuille.
Toutefois, pourquoi ne pas simplement hachurer (par mise en forme conditionnelle) les cellules C10 à C16 si B9=1 ?
A+
Ton explication est très claire. Je te propose :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B9")) Is Nothing Then
If Range("B9").Value = 1 Then Range("C10:C16").Delete Shift:=xlToLeft
End If
End Sub
à placer dans le code associée à ladite feuille.
Toutefois, pourquoi ne pas simplement hachurer (par mise en forme conditionnelle) les cellules C10 à C16 si B9=1 ?
A+
Je préfère ne pas hachurer car j'ai d'autres cellules à décaler en fonction de la réponse en B9. C'est pour optimiser mon document :)
J'ai maintenant 2 autres questions:
1) J'ai essayé d'appliquer ton code pour une autre plage de cellules qui dépend aussi de la valeur en B9 mais cela ne fonctionne pas...
J'ai directement copier/coller le code est juste changé la plage "C10:C16" en "C30:C35".
2) Admettons que la personne ait tapé en B9 la valeur 1 et s'aperçoit qu'elle s'est trompée. Elle tape donc 2. Le souci ici est que Range("C10:C16") n'existe plus! Donc comment est ce que je fais "réapparaître" ce qui a été supprimé?
2) Il ne faut pas se tromper ! Utilise données de validation --> 1 ou 2 et ce code devrait aller :
Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("B9")) Is Nothing Then Select Case Range("B9").Value Case 1 Range("C10:C16").Delete Shift:=xlToLeft Case 2 Range("C10:C16").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Range("C11").Value = "Personne 2" End Select End If End SubJ'avais mal adapté le code à mon cas d'où le fait que ça ne fonctionnait pas.