Aidez moi je vous en supli!

AdrienG

XLDnaute Nouveau
Bonjour à tous,

Je suis tout nouveau dans ce forum. J'espère beaucoup apprendre en tout cas!
Ma première demande au près de vous est la suivante:
Je suis en stage et je dois effectuer un planning de tests pour un nouveaux logiciel qui va être livré dans l'entreprise. ces tests s'effectueront pour deux domaines différents. Mon planning général dans la première feuille planifie les tâches pour ces deux domaines. Dans les deux autres feuilles de mon classeur se trouve les planning pour chacun de ces domaines.
Les colonnes correspondent aux demies journées et en ligne nous trouvons les tâches à effectuer. Comme elles ne sont pas forcément identiques d'un domaine à l'autre, une ligne sur deux correspond aux tâches d'un domaines et de même pour l'autre. Jusqu'ici rien d'innovant.

J'ai pu créer plusieurs macros me permettant par exemple d'être alerter quand certains facteurs comme le nombre d'ordinateurs, le temps d'occupation des utilisateurs dépassent un certain seuil.

Mais voici mon nouvelle objectif, je voudrais q'une fois une modification de planning effectué dans le planning général( rajout ou suppression d'un créneau de test pour un des deux deux domaines) celle ci soit enregistré dans les plannings correspondant dans les deux autres feuilles.

Est ce possible?

Merci d'avance.

Adrien
 

tototiti2008

XLDnaute Barbatruc
Re : Aidez moi je vous en supli!

Re,

ma solution est :

si j'affiche la feuille pilote domaine 1 (par exemple)
Tout son contenu est effacé
une macro parcours toutes les lignes de la feuille pilote
si la ligne est jaune, on recopie la ligne entière dans pilote domaine1

mais ça veut dire qu'il faudra patienter un peu à chaque fois que l'on active l'une de ces feuilles

ça te semble envisageable ?
 

AdrienG

XLDnaute Nouveau
Re : Aidez moi je vous en supli!

Sa me semble très bien! Cette solution me parrait raisonnable du fait que le temps de traitement n'est pas une exigence dans mon travail!

C'est malheuresement après coup que je comprend comment ce forum fonctionne et je comprend aussi pourquoi j'ai pu choquer certain esprits!

Merci de ton aide.
 

AdrienG

XLDnaute Nouveau
Re : Aidez moi je vous en supli!

Je le tests dès que je suis chez moi, la ou je fait mon stage ils ont des anti-virus qui m'empêche de récupérer le fichier.

J'ai encore une question, comment je fait pour sélectionner différentes cellules dans vba, ce n'est surement pas la commande Range("A1","A2",...)?

Encore merci
 

AdrienG

XLDnaute Nouveau
Re : Aidez moi je vous en supli!

Merci tototiti2008,

Pour ne copier/coller bêtement ton travail, peut tu m'expliquer qu'effectue la commande que tu as rajouté en événement des domaines 1 et 2?

Merci, en tout cas ta solution fonctionne très bien!
 

tototiti2008

XLDnaute Barbatruc
Re : Aidez moi je vous en supli!

Re,

Les procédures évènementielles
Code:
Private Sub Worksheet_Activate()

se déclenchent quand on active la feuille concernée
Chacune d'entre elles appelle la fonction ActualiseFeuille que j'ai mis en Module1, mais avec un paramètre différent
Le paramètre en question est juste le numéro de couleur des lignes à récupérer
ColorIndex = 5 : Bleu
ColorIndex = 6 : Jaune

La macro ActualiseFeuille se base sur ce numéro pour savoir quelles ligne copier de la feuille pilote en regardant la couleur de fond en colonne A et en la comparant à ce numéro de couleur (je copie aussi les lignes qui n'ont pas de couleur de fond)

C'est à peu prêt tout
 

AdrienG

XLDnaute Nouveau
Re : Aidez moi je vous en supli!

Bonjour Tototiti2008,

J'espère que tu vas bien depuis la dernière fois?

Je viens vers toi aujourd'hui pour savoir si il est possible à partir de ton code garder toute la mise en page de l'onglet où l'on fait les modifications. C'est à dire garder les formules, ...

Merci d'avance.

Bonne journée.

Adrien
 

tototiti2008

XLDnaute Barbatruc
Re : Aidez moi je vous en supli!

Bonjour à tous,

J'étais en congés, ai laissé un peu Excel de côté ;)

Le principe est le suivant : à l'activation d'une feuille domaine1 ou domaine2, on efface entièrement son contenu et on copie intégralement les lignes de la feuille pilote qui on une case d'une certaine couleur dans la colonne A

Pour déclencher une macro à l'activation d'une feuille, il faut utiliser des procédures évènementielles. Celles-ci sont les 2 macros

Code:
Private Sub Worksheet_Activate()
    ActualiseFeuille (6)
End Sub

et

Code:
Private Sub Worksheet_Activate()
    ActualiseFeuille (5)
End Sub

que tu retrouves respectivement dans les feuilles Pilote domaine1 et Pilote domaine2

Chacune d'entre elles appelle la même Sub (procédure) ActualiseFeuille mais avec un paramètre d'entrée différent (le numéro de la couleur à copier pour la feuille concernée)

La Sub ActualiseFeuille se trouve dans le Module1, voici son code commenté :

Code:
Sub ActualiseFeuille(NumCoul As Long)
Dim i As Long, DerLigne As Long
    'Désactivation de l'affichage écran
    Application.ScreenUpdating = False
    'Suppression des données de la feuille activée
    ActiveSheet.Range("A4:IV65536").Clear
    'Début du compteur pour savoir dans quelle ligne coller
    DerLigne = 4
    'Pour chaque ligne de la feuille Pilote
    For i = 1 To Sheets("Pilote").Range("A65536").End(xlUp).Row + 1
        'Si la cellule colonne A a un fond de la couleur spécifiée ou aucun fond
        If Sheets("Pilote").Range("A" & i).Interior.ColorIndex = NumCoul Or _
            Sheets("Pilote").Range("A" & i).Interior.ColorIndex = xlNone Then
                'On copie la ligne entière de Pilote vers la ligne du compteur de la feuille active
                Sheets("Pilote").Range("A" & i).EntireRow.Copy ActiveSheet.Range("A" & DerLigne)
                'On incrémente le compteur de 1
                DerLigne = DerLigne + 1
        End If
    Next i
    'Réactivation de l'affichage écran
    Application.ScreenUpdating = True
End Sub

en espérant que ça clarifie un peu les choses
 

Discussions similaires

Statistiques des forums

Discussions
312 217
Messages
2 086 353
Membres
103 196
dernier inscrit
N-TR86