Récupération d'informations dans une feuille annexe

ipotez

XLDnaute Occasionnel
Salut,
Je rencontre un problème d'adaptation d'une macro qui m'avait été gentillement donnée il y a quelques temps par un ExcelDownloadien bien connu (Job75).

A l'époque l'objectif était de récupérer dans une feuille "recap", des données saisies dans une feuille "Saisie". Les lignes sur lesquelles un utilisateurs avait écrit un "X" devaient arriver sur "Recap" et à chaque modification des "X" sur la feuille saisie, la feuille "Recap" s'actualisait.

Cela fonctionne parfaitement ! Malheureusement les besoins ont évolués et l'on me demande aujourd'hui de modifier l'extraction pour obtenir certaines infos sur 1 feuille et d'autre infos sur une autre.

J'ai formulé les contraintes sur un classeur en pièce jointe et je remets la macro de Job75.

Merci infiniement de prendre un peu de votre temps
Bonne journée

Code:
Private Sub Worksheet_Activate()
Dim plage As Range, i As Long
Application.ScreenUpdating = False
With Sheets("SAISIE")
  Set plage = .Range("A5", .Range("A" & Rows.Count).End(xlUp))
End With
On Error Resume Next
[Zone].Delete 'suppression préalable
On Error GoTo 0
plage.EntireRow.Copy 'copie de la plage
[8:8].Insert 'insertion de lignes
Me.Names.Add "Zone", [8:8].Resize(plage.Count) 'mémorisation dans un nom
[Zone].Resize(, 2).Cut [C8]
For i = 11 + plage.Count To 12 Step -1
  If Cells(i, 3).Interior.ColorIndex < 0 And Cells(i, 3) <> "" And Cells(i, 4) = "" _
    Or Cells(i, 3).Interior.ColorIndex > 0 And Cells(i + 1, 3) = "" _
    Or Cells(i, 3) & Cells(i + 1, 3) = "" Then Rows(i).Delete
Next
If [C8] = "" And [C9] <> "" Then Rows(8).Delete
On Error Resume Next 'si la plage Zone a été supprimée
[Zone].Columns(6).ClearContents 'si l'on veut effacer les "x" en colonne D
Range("C1").Select
End Sub
 

Pièces jointes

  • PB EXCELDWLD.xlsx
    13.7 KB · Affichages: 65

job75

XLDnaute Barbatruc
Re : Récupération d'informations dans une feuille annexe

Bonsoir ipotez,

Voyez le fichier joint et les macros dans le code des feuilles ANNEXE1 et ANNEXE2.

A+
 

Pièces jointes

  • PB EXCELDWLD(1).xls
    69 KB · Affichages: 88
Dernière édition:

ipotez

XLDnaute Occasionnel
Re : Récupération d'informations dans une feuille annexe

Génial Job, encore un grand merci pour ton coup de main et surtout pour ta disponibilité !
C'est vraiment cool.

ps : en passant, je découvre grâce a toi le : Application.ScreenUpdating = False
ça aussi ça me file le smile :)
Bonne soirée
 

ipotez

XLDnaute Occasionnel
Re : Récupération d'informations dans une feuille annexe

Ooops ya un problème sur la feuille Annexe 2, il affiche bien le module et la partie mais SEULEMENT si les détails de la feuille "Saisie" sont formatés en numérique. J'ai remplacé 1 par toto et du coup toto apparait dans la feuille Annexe2.

J'avais pas forcément non plus précisé que cette colonne pouvait contenir différents format...

C'est grave Doc ? :confused:
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Récupération d'informations dans une feuille annexe

Bonsoir ipotez, le forum,

C'est grave Doc ? :confused:

Pas du tout, au lieu de rechercher les nombres, il suffit de supprimer les cellules non colorées.

J'en ai profité pour paramétrer la macro dans Module1. Cela allège le code.

La macro est appelée par la Worksheet_Activate de chacune des feuilles ANNEXE1 et ANNEXE2.

Fichier (2).

A+
 

Pièces jointes

  • PB EXCELDWLD(2).xls
    69.5 KB · Affichages: 62

ipotez

XLDnaute Occasionnel
Re : Récupération d'informations dans une feuille annexe

Ok je comprends mieux ton code maintenant, par contre ya un truc qui ne fonctionne pas.

Lorsque tu as des croix dans la partie A ET B, pas de soucis. Par contre lorsque seuls des élèments de la partie B sont cochés, les titres de modules disparaissent dans les feuilles annexes et le titre Partie A apparaît en Annexe 1 (alors qu'il n'est pas renseigné).Tu peux le voir sur la pièce jointe.

Désolé que ce soit relou :(
Merci encore
 

Pièces jointes

  • PB XLDWNLD.xls
    62.5 KB · Affichages: 85

job75

XLDnaute Barbatruc
Re : Récupération d'informations dans une feuille annexe

Bonjour ipotez, le forum,

En effet il manquait un test : supprimer la ligne quand la cellule suivante a la même couleur.

Fichier (3).

Edit : J'ai ajouté les variables coul1 et coul2 pour alléger.

A+
 

Pièces jointes

  • PB XLDWNLD(3).xls
    64 KB · Affichages: 59
Dernière édition:

job75

XLDnaute Barbatruc
Re : Récupération d'informations dans une feuille annexe

Re,

Si l'on veut un ajustement de la largeur de colonne, fichier (4).

Edit : dans la foulée, j'ai paramétré la bordure avec la variable bord...

A+
 

Pièces jointes

  • PB XLDWNLD(4).xls
    63.5 KB · Affichages: 68
Dernière édition:

ipotez

XLDnaute Occasionnel
Re : Récupération d'informations dans une feuille annexe

Yes ben écoute j'ai tout testé, c'est tout bon !

Encore un excellent coup de main, un grand merci à toi Job.

Ps : j'abuse mais si je veux récupérer le nombre d'heures de la feuille Saisie dans l'Annexe 1 (en colonne D par exemple), quelle est la partie du code à modifier ?

Bonne soirée à toi
 

job75

XLDnaute Barbatruc
Re : Récupération d'informations dans une feuille annexe

Re,

si je veux récupérer le nombre d'heures de la feuille Saisie dans l'Annexe 1 (en colonne D par exemple), quelle est la partie du code à modifier ?

Dans le paramétrage de la macro, j'ai ajouté le paramêtre N (Optional donc facultatif) qui représente le nombre de colonnes à afficher.

Une ligne à la fin supprime les valeurs d'erreur créées dans la fonction SOMME par la suppression des références.

Fichier (5).

A+
 

Pièces jointes

  • PB XLDWNLD(5).xls
    66 KB · Affichages: 56

job75

XLDnaute Barbatruc
Re : Récupération d'informations dans une feuille annexe

Bonjour ipotez, le forum,

En supprimant les formules c'est mieux je pense.

Même en ANNEXE2 on peut afficher les heures.

Fichier (6).

A+
 

Pièces jointes

  • PB XLDWNLD(6).xls
    66.5 KB · Affichages: 66

ipotez

XLDnaute Occasionnel
Re : Récupération d'informations dans une feuille annexe

Salut Job, parfait j'obtiens les heures dans ma feuille annexe 1. Il ne me les faut pas pour l'annexe2 donc c'est tout bon.

J'ai commencé a charger tous mes modules composés de différentes parties, tout tourne mais j'ai remarqué qu'après avoir lancé la macro plusieurs fois, le temps d'éxecution s'allonge fortement, pas loin de 25 secondes parfois.
Je pense que j'ai trop de lignes, près de 100, il mouline pas mal pour les supprimer une a une.
Je vais voir si je peux trouver un truc pour masquer celle qui ne servent pas
Bonne journée
Damien
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Récupération d'informations dans une feuille annexe

Bonjour ipotez, le forum,

(...) le temps d'éxecution s'allonge fortement, pas loin de 25 secondes parfois.

Ce n'est pas normal, 100 lignes ce n'est rien du tout, le résultat doit être quasi instantané.

Il y a peut-être d'autres macros évènementielles ou des formules (volatiles ?) qui se recalculent...

Essayez en mettant en début de macro :

Code:
Application.EnableEvents = False
Application.Calculation = xlManual
et en fin de macro :

Code:
Application.Calculation = xlAutomatic
Application.EnableEvents = True
A+
 

job75

XLDnaute Barbatruc
Re : Récupération d'informations dans une feuille annexe

Bonjour Damien, le forum,

J'ai finalement compris d'où vient le problème.

Chaque fois que le tableau est inséré dans une feuille ANNEXE, la Dernière cellule se décale vers le bas.

Après un grand nombre d'opérations, cela allonge considérablement la durée de suppression de lignes.

Pour l'éviter, il faut faire du copier/coller comme dans le fichier (7) joint.

Mais bien entendu s'il y a des données dans la zone de collage, elles seront écrasées.

Nota : pour "nettoyer" les feuilles ANNEXE, déterminer la Dernière cellule :

- touche F5 => Cellules => Dernière cellule

- supprimer toutes les lignes entre le tableau et cette dernière cellule

- enregistrer le fichier.

A+
 

Pièces jointes

  • PB XLDWNLD(7).xls
    66 KB · Affichages: 40

Discussions similaires

Réponses
17
Affichages
902

Statistiques des forums

Discussions
312 381
Messages
2 087 818
Membres
103 666
dernier inscrit
gjoanou