Onglet synthèse avec conditions à partir de données de différents autres onglets

samimi94

XLDnaute Occasionnel
Bonsoir à tous,

Mes meilleurs vœux pour cette nouvelle année.

Je viens vers vous pour solliciter votre aide car je rencontre des difficultés à générer une synthèse d'un fichier Excel à partir de plusieurs onglets.

J'ai farfouillé de longues heures sur le forum pour tenter de me débrouiller seule mais je n'ai pas trouvé de macros qui pourrait générer la synthèse que je souhaite obtenir.

Mon objectif est le suivant :

Je possède un fichier excel avec plusieurs onglets ayant la même structure, je désire récupérer certaines données de certaines cellules pour les coller dans un onglet nommé "synthèse".

J'ai bien trouvé des exemples de macros qui pourraient faire cela cependant je ne parviens pas à l'adapter à ma situation car dans mon fichier je possède des cellules fusionnées (je sais que ce n'est pas top mais je ne suis pas à l'origine de ce fichier qui a été diffusé à un large public et que je ne peux donc plus modifier).

De plus, les macros que j'ai pu tester récupèrent les données par colonne et non par cellule, or les informations de mon fichier se trouvent dans des cellules précises et je ne souhaite pas récupérer toutes les lignes ou colonnes.

Cependant les cellules restent figées, ce sont toujours les mêmes.
Enfin certaines cellules peuvent posséder des formules (en fonction de la façon dont les utilisateurs ont renseigné le tableau), je souhaiterai donc être certaine de copier coller les valeurs et non les formules.

Ci-joint un fichier test qui explique un peu mieux mon souhait.

Merci pour votre contribution et aide.
En espérant ne pas avoir été trop brouillon sinon n'hésitez pas à me le faire savoir.

Bonne soirée à tous.
 

Pièces jointes

  • test.xlsx
    12.9 KB · Affichages: 22
  • test.xlsx
    12.9 KB · Affichages: 28
  • test.xlsx
    12.9 KB · Affichages: 30

Papou-net

XLDnaute Barbatruc
Re : Onglet synthèse avec conditions à partir de données de différents autres onglets

Bonsoir samimi94, et meilleurs voeux également,

Ci-joint copie de ton fichier avec une macro déclenchée par le bouton Démo.

Tu peux, sans limite, ajouter des lignes ou des feuilles sans rien changer au code.

Je te laisse le soin de tester.

Bonne soirée.

Cordialement.
 

Pièces jointes

  • test samimi.xlsm
    26.1 KB · Affichages: 31

samimi94

XLDnaute Occasionnel
Re : Onglet synthèse avec conditions à partir de données de différents autres onglets

Bonsoir Papou-Net,

Merci de prendre le temps de m'aider.
Je viens de tester la simple exécution du bouton démo mais il ne se passe rien dans mon onglet synthèse.
Je n'ai pourtant aucun message d'erreur.

Samimi
 

Papou-net

XLDnaute Barbatruc
Re : Onglet synthèse avec conditions à partir de données de différents autres onglets

Bonjour samimi94,

Est-ce que ce problème apparaît dans le fichier joint ou dans ton fichier dans lequel tu aurais retranscrit le code?

Dans ton message initial, tu parlais de cellules contenant des formules. Ne serait-ce pas le cas dans la colonne A, bien que je ne l'ai pas remarqué sur ton classeur exemple?

Dans l'attente de ta réponse.

Cordialement.
 

samimi94

XLDnaute Occasionnel
Re : Onglet synthèse avec conditions à partir de données de différents autres onglets

Bonjour à tous,

Je continue d'avancer sur mon projet et en testant différents bouts de codes trouvés sur le forum je suis parvenue à récupérer quelques informations des mes onglets sources pour les renseigner dans mon onglet synthèse.
Cependant je ne parviens pas à intégrer certaines données en fonction des conditions que je désire appliquer.

Voici ce que j'ai intégré dans la macro :

Code:
'Chargement du nom des feuilles origine et destination
 Source = "Sources"
 Cible = "Synthèse Livraisons"
 'Calcul de la ligne courante
 LigneEncours = Worksheets(Cible).Range("M" & Rows.Count).End(xlUp).Row + 1
 'Copie des valeurs
 With Worksheets(Cible)
  .Range("A" & LigneEncours) = Worksheets(Source).Range("M3").Value
  .Range("B" & LigneEncours) = Worksheets(Source).Range("L23").Value
  .Range("C" & LigneEncours) = Worksheets(Source).Range("AF5").Value
'  .Range("D" & LigneEncours) = Worksheets(Source).Range("").Value
  .Range("E" & LigneEncours) = Worksheets(Source).Range("T26").Value
  .Range("F" & LigneEncours) = Worksheets(Source).Range("T28").Value
  .Range("G" & LigneEncours) = Worksheets(Source).Range("S24").Value
  .Range("H" & LigneEncours) = Worksheets(Source).Range("AI26").Value
  '.Range("I" & LigneEncours) = Worksheets(Source).Range("AF33").Value
  .Range("J" & LigneEncours) = Worksheets(Source).Range("AS26").Value
  .Range("K" & LigneEncours) = Worksheets(Source).Range("AS28").Value
  .Range("L" & LigneEncours) = Worksheets(Source).Range("AR24").Value
  .Range("M" & LigneEncours) = Worksheets(Source).Range("BG26").Value
  '.Range("N" & LigneEncours) = Worksheets(Source).Range("BD33").Value
  .Range("O" & LigneEncours) = Worksheets(Source).Range("AF33").Value
  .Range("P" & LigneEncours) = Worksheets(Source).Range("BD33").Value
  '.Range("Q" & LigneEncours) = Worksheets(Source).Range("").Value
  '.Range("R" & LigneEncours) = Worksheets(Source).Range("").Value
  '.Range("S" & LigneEncours) = Worksheets(Source).Range("").Value
  '.Range("T" & LigneEncours) = Worksheets(Source).Range("").Value
  .Range("U" & LigneEncours) = Worksheets(Source).Range("AT10").Value
 
 End With
 
 'Chargement du nom des feuilles origine et destination
 Source = "Sources Bis"
 Cible = "Synthèse Livraisons"
 'Calcul de la ligne courante
 LigneEncours = Worksheets(Cible).Range("M" & Rows.Count).End(xlUp).Row + 1
 'Copie des valeurs
 With Worksheets(Cible)
  .Range("A" & LigneEncours) = Worksheets(Source).Range("M3").Value
  .Range("B" & LigneEncours) = Worksheets(Source).Range("L23").Value
  .Range("C" & LigneEncours) = Worksheets(Source).Range("AF5").Value
'  .Range("D" & LigneEncours) = Worksheets(Source).Range("").Value
  .Range("E" & LigneEncours) = Worksheets(Source).Range("T26").Value
  .Range("F" & LigneEncours) = Worksheets(Source).Range("T28").Value
  .Range("G" & LigneEncours) = Worksheets(Source).Range("S24").Value
  .Range("H" & LigneEncours) = Worksheets(Source).Range("AI26").Value
  '.Range("I" & LigneEncours) = Worksheets(Source).Range("AF33").Value
  .Range("J" & LigneEncours) = Worksheets(Source).Range("AS26").Value
  .Range("K" & LigneEncours) = Worksheets(Source).Range("AS28").Value
  .Range("L" & LigneEncours) = Worksheets(Source).Range("AR24").Value
  .Range("M" & LigneEncours) = Worksheets(Source).Range("BG26").Value
  '.Range("N" & LigneEncours) = Worksheets(Source).Range("BD33").Value
  .Range("O" & LigneEncours) = Worksheets(Source).Range("AF33").Value
  .Range("P" & LigneEncours) = Worksheets(Source).Range("BD33").Value
  '.Range("Q" & LigneEncours) = Worksheets(Source).Range("").Value
  '.Range("R" & LigneEncours) = Worksheets(Source).Range("").Value
  '.Range("S" & LigneEncours) = Worksheets(Source).Range("").Value
  '.Range("T" & LigneEncours) = Worksheets(Source).Range("").Value
  .Range("U" & LigneEncours) = Worksheets(Source).Range("AT10").Value
 
 End With

Ce que je désire ajouter à cette règle est de récupérer les éléments des onglets sources qu'à la condition que le champ M3 soit renseigné, or avec le bout de code actuel je récupère des lignes vides (sachant que certaines cellules ont des formules du coup je me retrouve avec des 0).
Je souhaite également ajouter dans mon onglet synthèse la lettre R dans la cellule D si le champ T38 est renseigné et L si le champ T28 est renseigné.
Enfin, je souhaiterai à l'exécution de la macro, purger mon onglet synthèse sans supprimer les entêtes de colonnes qui sont sur les 2 premières lignes afin de pouvoir l'exécuter autant de fois que je veux en repartant d'une base vierge en cas d'erreur.

Merci à ceux qui prendront le temps de se pencher sur mon problème.

Samimi.
 

samimi94

XLDnaute Occasionnel
Re : Onglet synthèse avec conditions à partir de données de différents autres onglets

Bonjour Papounet,

Le message d'erreur apparait dans le fichier joint, je ne l'ai pas encore adapté à mon fichier d'origine, car le fichier joint est simplifié le mien étant beaucoup plus tordu, avant de l'adapter je voulais juste être certaine que ça fonctionne.

Merci encore pour ton aide.

Du coup hier j'ai continué mes recherches et j'ai plus ou moins réussi certaines choses et pas d'autres :rolleyes:
 

samimi94

XLDnaute Occasionnel
Re : Onglet synthèse avec conditions à partir de données de différents autres onglets

Bonjour JCGL,

Je viens de fermer tous mes classeurs et relancer le fichier de Papou-Net et malgré cela j'ai toujours une erreur.
J'utilise Excel 2013 sous Win7.

Ci-joint les erreurs.



Merci à tous.
 

Pièces jointes

  • Erreur.jpg
    Erreur.jpg
    12.6 KB · Affichages: 30
  • Erreur 2.jpg
    Erreur 2.jpg
    24.3 KB · Affichages: 33
  • Erreur.jpg
    Erreur.jpg
    12.6 KB · Affichages: 33
  • Erreur 2.jpg
    Erreur 2.jpg
    24.3 KB · Affichages: 29
  • Erreur.jpg
    Erreur.jpg
    12.6 KB · Affichages: 33
  • Erreur 2.jpg
    Erreur 2.jpg
    24.3 KB · Affichages: 31

Staple1600

XLDnaute Barbatruc
Re : Onglet synthèse avec conditions à partir de données de différents autres onglets

Bonjour à tous


Je confirme également que le fichier de Papou-net (celui du message #2) fonctionne sans message d'erreur.
Et je suis aussi sous Excel 2013 (32 bits) et Windows 7 (64bits)

Question:
Si tu lances la macro par VBE* (sans passer par un click sur le bouton Demo) , tu as aussi le message d'erreur ?

*: Faire ALT+F11
Normalement la macro report s'affiche
appuyer alors sur la touche F5
 
Dernière édition:

samimi94

XLDnaute Occasionnel
Re : Onglet synthèse avec conditions à partir de données de différents autres onglets

Bonjour Staple1600,

Je ne comprends pas ce qui cloche, j'utilise également le fichier du message 2, le problème doit donc bien venir de mon PC.
Je testerai dès que possible ce code sur un autre PC.

Merci.
 

Staple1600

XLDnaute Barbatruc
Dernière édition:

samimi94

XLDnaute Occasionnel
Re : Onglet synthèse avec conditions à partir de données de différents autres onglets

Staple1600,

Désolée, je n'avais pas vu la question.
Lorsque je lance manuellement la macro via F5 j'ai erreur inattendue comme dans le print'écran que je vous ai envoyé puis la première ligne Sub report() qui est surlignée en jaune.
 

Discussions similaires

Statistiques des forums

Discussions
312 224
Messages
2 086 409
Membres
103 201
dernier inscrit
centrale vet