Macro pour un recapitulatif de donnes

Résolu
Bonjour,
JE SUIS EN TRAIN DE FAIRE UEN MACRO MAIS JE BLOQUE. MA 1er feuiille est le recap des données de tous les onglets commencant par F. ( il yta F1. F2 ETC) ce sont des factures du client X.
JE VOUDRAIS SUR LA FEUILLE RECAP AVOIR LES DONNES DE CHAQUE FACTURE. CES DONNEES SONT DANS LES MEMES REFERENCES DE CELLULES QUELQUE SOIT LA FACTURE. (NOM, PRENOM, MONTANT, acommpte, TVA).
pour l instant la macro marche en m indiquant dans la feuille Recap les données cherchée en feuille F1 donc sur la facture F1.
comment faire pour automatiser CETTE TACHE pour que la macro aille me chercher les autres onglets et qu au fur et a mesure que je rajoute un onglet F pour une autre facture, la feuille recap se mettre a jour.
MERCI DE VOTRE AIDE.

LA FEUILLE RECAP DOIT ME PERMETTRE DE SAVOIR LE CHIFFRE D AFFAIRE D UN CLIENT, le montant de la TVA etc

3 réponses

  1. bonjour

    tu peux essayer ce morceau

    dim x as long,

    'je suppose que tu as 100 facture ,et tes feuilles ont pour nom F1, F2,.... bien sur tu peux augmenter ce nombre
    for x=1 to 100
    Sheets("Fx").Select
    'puis tu met ton macro
    exit for
    next x
    cancel =true
    end sub
    0
    1. oublie ma 1ère réponse et prend ce là doit marcher

      Sub Macro1()
      '
      Dim i As Long

      For i = 2 To Worksheets.Count - 1 'Parcours des feuilles
      Sheets(Array(i)).Select
      'puis tu met ton macro qui sert à collectionner les données
      Next i
      cancel = True
      End Sub
      0
    2. @kadehmerci khade de m avoir repondu! j ai inséré la procedure ci dessous mais il ya un souci ; la procedure Sheets(Array(i)).Select est souligné en jaune! au debogage! merci de m aider! lmes factures commence par F1; F2 etc sur chaque onglet. le 1er onglet est celui du recap

      Dim i As Long

      For i = 2 To Worksheets.Count - 1
      Sheets(Array(i)).Select

      Sheets("F1").Select

      Range("G9").Select
      Selection.Copy
      Sheets("Recap").Select
      Range("A4").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
      0
    3. @tatiesseen premier temps enlève la ligne (Sheets("F1").Select)

      ?????mes factures commence par F1; F2 etc sur chaque onglet. le 1er onglet est celui du recap ?????

      ------>>

      Sub Macro1()

      Dim i As Long

      For i = 2 To Worksheets.Count - 1

      Sheets(Array(i)).Select

      Range("G9").Select

      Selection.Copy

      Sheets("Recap").Select

      Range("A4").Select

      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False

      end sub

      ---------------------------
      tu copie la valeur de la cellule G9 dans la cellule A4 ??? à quoi sert ça ???

      sincerement je t'ai pas compris si tu explique un peux ça sera mieux à fin dde te données

      une réponse exacte et rapide

      @+
      0
  2. je compend que tu veux copier les valeurs de G9,B22,B23 de chaque facture dans
    la colonne A,B,C a partir de la ligne 4 si c'est ça que tu veux:
    faix ceci j'ai tester cette macro et c'est bien marché:

    Sub Macro1()
    '
    Dim i As Integer

    '
    For i = 2 To Worksheets.Count - 1 'Parcours des feuilles

    Sheets(Array(i)).Select
    Range("G9").Select
    Sheets("Recap").Range("A65536").End(xlUp).Offset(3, 0).Value = ActiveCell.Value
    Range("B23").Select
    Sheets(Array(i)).Range("B65536").End(xlUp).Offset(3, 0).Value = ActiveCell.Value
    Range("B22").Select
    Sheets(Array(i)).Range("C65536").End(xlUp).Offset(3, 0).Value = ActiveCell.Value
    Next i
    cancel = True
    End Sub
    0
    1. bonjour,
      j'ai un dossier dans lequel il y a des fichiers CLT1, CLT2, CLT3 etc. (ce sont des fichiers recapitulatif de chiffre d affaires) .La 1ere feuille est celle recapitulatif de nom de societé et liste de facture et montant. JE VOUDRAIS UNE MACRO QUI OUVRIRA LE FICHIER F1 ET RECUPERERA LES INFO (les lignes de factures) et me le recopiera sur une autre feuille et ainsi de suite!
      je dis a la macro :ouvre moi le fichier CLT1 , éxecute la macro qu elle contient et copie le résultat et colle le dans le fichier RECAP.

      ouvre moi le fichier CLT2 , éxecute la macro qu elle contient et copie le résultat et colle le dans le fichier RECAP a la suite du 1er résultat lorsque tu as copier CLT1 et ainsi de suite à chaque fois que tu trouves un fichier CLT* ouvre le et copie le
      merci de votre aide.
      0
      1. Bonjour,
        excuez-moi, j'ai pas pu répondre aux messages que tu as envoyé
        j'ai beaucoup de travail cette semaine
        pour ton fichier récap global:
        je pense que la procédure que décrit ici n'est pas la bonne solution:
        si tu ouvre le fichier récap global et tu lance une macro qui vas ouvrir un par un les fichier client (CLT1,CLT2,...) et dans chaque fichier vas lancer une autre macro qui enregistre les données de chaque facture dans la première feuille (récap)
        et extraire les donnéess de cette feuille pour les mettre dans la feuille récap global
        pour faire cette procédure pour un seul client ça peut etre un peu lent
        si tu a par exemple 10 client je pense que tu lance cette macro et tu doit la laisser travailler et aller prendre un café, tu reviens aprés une demi-heure pour voir si elle a términé le travail demandé

        pourquoi tu ne crée pas une macro dans chaque fichier client qui transfère les données de la feuille récap vers récap global sans l'ouvrir.
        @+
        0