Décaler vers la gauche ensemble de cellules de façon conditionnelle

Fermé
gougouks Messages postés 9 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 15 février 2019 - 14 févr. 2019 à 12:31
 gougouks - 21 févr. 2019 à 10:06
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 :D

2 réponses

Si aucun "pro" du VBA ne te répond je te ferais un truc ce soir, même si c'est pas très orthodoxe :p (Je me débrouille mais c'est pas forcément très "propre" :p)
0
gougouks Messages postés 9 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 15 février 2019
14 févr. 2019 à 16:28
Se sera toujours mieux que rien :D
0
Désolé pas eu le temps hier, voici un fichier fonctionnel, le VBA est à adapter selon les tailles de tes tableau. (Je t'expliquerai comment faire si tu veux)

https://we.tl/t-jUIigsSp05
0
La Feuil2 me sert de mémoire, il y'a moyen d'adapter là aussi si ça va pas...
0
Merci pour ton aide :D

Juste pour être sure de bien comprendre:
La première partie dit:
Si la valeur en B9 = Nombre de personne est 1 alors ne pas mettre à jour.
___Par contre si B9 etait à 2 personnes et qu'il n'y a plus qu'1 personne alors sélectionner et couper la colonne Personne 2 pour la coller dans la Feuil2 sur la cellule B2.
___Sur la Feuil1, avancer d'une colonne la plage col1, col2, col3 et col4 en la sélectionnant et la collant sur sa nouvelle place Range("C10:F18")
___Sur la Feuil2, la cellule G2 prend la valeur 1

Et l'inverse pour le deuxième if:
On part de 1 personne et finalement il a 2 personnes alors on doit insérer la colonne Personne 2 et décaler la plage de cellules col1, col2, col3 et col4 vers la droite en copiant et collant la cellule sur la nouvelle place voulue.

Ai-je bien tout compris?
0
T3chN0g3n Messages postés 5102 Date d'inscription samedi 16 février 2019 Statut Membre Dernière intervention 22 novembre 2024 1 138
Modifié le 18 févr. 2019 à 15:16
Tu as compris l'idée, c'est vrais que je n'ai pas pris le temps de commenter. Je fait une mémoire pour ne pas ré-exécuter la macro si on sélectionne le même nombre deux fois de suite.
Voici le fichier avec le code commenté
https://we.tl/t-dbt3HpmvxQ
0
Merci beaucoup pour ta précieuse aide :)
0