Fichier récapitulatif

kyasteph

XLDnaute Occasionnel
Bonjour,
j'ai une feuille sur laquelle je saisie des données (Feuil1).
Je souhaiterais avoir un fichier récapitulatif comme le montre la feuille (Recap).
Comment y arriver par macro ?
Quelqu'un peut il m'aider s'il vous plait.
Merci d'avance.

Je joins une piece jointe pour mieux me faire comprendre.
 

Pièces jointes

  • RecapEssai.xlsx
    191.3 KB · Affichages: 57

camarchepas

XLDnaute Barbatruc
Re : Fichier récapitulatif

Bonjour,

A copier dans un module standard du classeur et sauvegarder sous .Xlsm

Puis executer recap

Code:
Option Explicit

Sub Recap()
Dim Ligne As Long, LigneCopie As Long
Dim Groupe As Integer
For Ligne = PremiereLigne("Feuil1", "Mois") To DerniereLigne("Feuil1", True)
  For Groupe = 1 To 3
   If Worksheets("Feuil1").Range("B" & Ligne).Offset(0, Groupe * 2) <> "" Then
    LigneCopie = DerniereLigne("Recap", False) + 1
    Worksheets("Feuil1").Range("A" & Ligne & ":C" & Ligne).Copy Worksheets("Recap").Range("A" & LigneCopie & ":C" & LigneCopie)
    Worksheets("Feuil1").Range("B" & Ligne).Offset(0, Groupe * 2).Copy Worksheets("Recap").Range("D" & LigneCopie)
    Worksheets("Feuil1").Range("C" & Ligne).Offset(0, Groupe * 2).Copy Worksheets("Recap").Range("E" & LigneCopie)
   End If
  Next Groupe
Next Ligne
End Sub
Function DerniereLigne(Feuille As String, Securite As Boolean) As Long
 Dim InterLigne As Long
 InterLigne = Worksheets(Feuille).Range("A" & Rows.Count).End(xlUp).Row
 If InterLigne > 1 Or Not Securite Then
   DerniereLigne = InterLigne
  Else
   MsgBox "Pas de donnée à traiter, fin du traitement"
   End
 End If
End Function
Function PremiereLigne(Feuille As String, Libelle As String) As Long
 Dim Trouve As Range
 Set Trouve = Worksheets(Feuille).Range("A:A").Find(Libelle, lookat:=xlWhole)
 If Not Trouve Is Nothing Then
   PremiereLigne = Trouve.Row + 1
  Else
   MsgBox "Elément : " & Libelle & " non truvé, Arrêt du traitement"
   End
 End If
End Function
 
Dernière édition:

kyasteph

XLDnaute Occasionnel
Re : Fichier récapitulatif

Bonjour,
Merci pour votre réponse et la promptitude avec laquelle vous avez répondu.

Le code proposé marche;et j'ai essayé de l'adapter car en réalité il y a plusieurs colonnes (14) apres la colonne "N° fact."
et deux dernieres colonnes à la fin du tableau.

La macro marche,cependant j'ai deux problemes qu'il me faut résoudre:

1)la macro me copie toutes les données,alors que je ne veux pas qu'elle reporte dans la feuille "Recap" les données des colonnes "D" à "Q" et "X" à "Y".
2)La macro est assez lente (car il y a beaucoup de données en réalité).

Quelqu'un a t il une solution à ces deux problemes ?

PS:Je joins une piece jointe pour mieux me faire comprendre.
La feuille "Recap" donne le résultat actuel non souhaité
La feuille "Recap(2)" donne le résultat attendu ,souhaité

Merci de m'aidez s'il vous plait.
 

Pièces jointes

  • RecapEssaiV1.xlsm
    265.6 KB · Affichages: 36

camarchepas

XLDnaute Barbatruc
Re : Fichier récapitulatif

Re ,

Le classeur et les feuilles sont protégées , et il y a une liaison sur les données .

Dans la colonne X pourquoi #valeur ?

Peux-tu arranger tout cela afin que l'on puisse travailler .

Pour la lenteur cela peut s'arranger, il fallait dans un premier temps vérifier tes besoins qui semblent en corélation avec ce qui à été proposé
 
Dernière édition:

bbb38

XLDnaute Accro
Re : Fichier récapitulatif

Bonjour Kyasteph, camarchepas, le forum,
Une idée de solution en mettant les données sous forme de tableau (inconvénient : manipulation à effectuer manuellement).
Cordialement,
Bernard
 

Pièces jointes

  • kyastrph_RecapEssaiV3.xlsm
    42.4 KB · Affichages: 47

Jack2

XLDnaute Occasionnel
Re : Fichier récapitulatif

Bonjour le fil, le Forum,

Peut-être une solution inspirée des codes de Robert dont j'ai gardé les explications en commentaire et de DoubleZero (utilisation de colonnes temporaires).

A+ Jack2
 

Pièces jointes

  • kyasteph_Recap.xls
    52 KB · Affichages: 49

kyasteph

XLDnaute Occasionnel
Re : Fichier récapitulatif

Bonjour ,
Grand grand merci à tous les trois et au forum,vous m'avez aidé non seulement à regler mon probleme mais aussi à évoluer un peu en vba vu que je suis débutant.
Pour mon besoin actuel j'ai retenu la proposition de bbb38 surtout j'ai trouvé l'idée "Tableau" assez génial.
Cela dit vous m'avez tous aidé et je vous en suis reconnaissant.
Merci encore à tous et longue vie au forum.
 

kyasteph

XLDnaute Occasionnel
Re : Fichier récapitulatif

Bonjour,
Veuillez m'excusez car je reviens sur mon probleme;
la solution bbb38 comme je l'avais dit plus haut marche bien car non seulement elle permet d'obtenir le fichier récapitulatif,mais aussi elle résoud le probleme de lenteur.
Mais malheuresement quand je veux partager mon application ,excel me renvoie un message d'erreur me disant qu'il est impossible de partager un classeur contenant des tableaux,du coup je suis revenu à la case départ.
J'ai donc annulé tous les tableaux excels que j'avais créés et essayer la solution de Jack2 qui marche aussi ,mais malheuresement elle est assez lente.
Quelqu'un a t il une solution pour régler mon probleme?
Merci de m'aidez s'il vous plait.
 

kyasteph

XLDnaute Occasionnel
Re : Fichier récapitulatif

Bonjour le Forum,
Apres m'etre penché longtemps sur mon probleme,j'ai étudié de pres la solution de bbb38 et essayé de comprendre pourquoi elle ne marcherait pas si les données ne sont pas sous forme de tableaux.
En abordant le probleme sous cet angle j'ai pu résoudre mon probleme(fichier récapitulatif obtenu,mais aussi le probleme de lenteur est résolu):
La solution a consisté :
-Convertir les données en plage de cellule
-Dans le code;
changer le type de la variable "order en Range au lieu de listobject;
à supprimer ce qui ramenait au tableau excel tel que "Databody"

je vous envoie le classeur en piece jointe.
j'espere que cela pourrait inspirer d'autres qui rencontrent le meme probleme.

Une fois de plus grand merci à tous et longue vie au forum.
 

Pièces jointes

  • kyastrph_RecapEssaiV3 (1)_SansTableauExcel.xlsm
    34.9 KB · Affichages: 24

Discussions similaires

Réponses
5
Affichages
148
Réponses
7
Affichages
431

Statistiques des forums

Discussions
312 330
Messages
2 087 341
Membres
103 524
dernier inscrit
Smile1813