Report auto. de données vers autre feuille

manuréva

XLDnaute Nouveau
Bonjour à tous,
Cela fait un certain temps que je passe mon temps à consulter les posts de ce forum qui est vraiment très instructif.

En vain, je n'arrive pas à trouver les infos pour réaliser précisément ce type de taches:
Je m'explique:

En cliquant par ex sur un bouton à créer dans le fichier maitre, après avoir insérer des qtés ds "maitre", celui va me créer et générer automatiquement autant de feuille qu'il y a de fournisseurs et surtout de qtés dans la colonne A de "maitre";
Pour créer une feuille avec le fournisseur correspondant, il faut donc que la colonne A soit supérieur à 0 dans "maitre".

J'espère avoir été assez clair mais reste à votre dispo si vous voulez plus d'infos.
Merci par avance.
Ci joint un fichier:

Cdlt
 

Pièces jointes

  • exemple.xls
    18 KB · Affichages: 120
  • exemple.xls
    18 KB · Affichages: 123
  • exemple.xls
    18 KB · Affichages: 132
Dernière édition:

manuréva

XLDnaute Nouveau
Re : Report auto. de données vers autre feuille

Bonjour skoobi,
merci pour ta bienvenue et surtout pour ton aide.
J'ai regardé ça en diagonale mais cela semble nickel.
Je reviens vers toi pour en dire un peu plus dès que possible.
A bientot et encore merci.
 

manuréva

XLDnaute Nouveau
Re : Report auto. de données vers autre feuille

Bonsoir à tous,
Désolé de ne répondre que maintenant.
J'ai pu jeté un oeil plus précis sur ton travail qui va vraiment ds le sens de ce que je voulais...Encore merci.
Cependant:
- est ce qu'il est possible de partir sur le même principe que ce que tu as fait mais en supprimant simplement la feuille "trame".
- étant un débutant en vba (mais motivé pour apprendre très rapidement et développer ce type de code), pourrais tu m'orienter, sans vouloir abuser, vers un bouquin ou un site internet qui "ratisse large" et qui puisse m'apprendre de façon simple et efficace le vba et ce type de code que tu as employés...et même plus certainement? on m'avait parlé par ex de vba pour les nuls mais je suis assez réservé sur la série pour les nuls...

Merci par avance.
Cdlt
 

skoobi

XLDnaute Barbatruc
Re : Report auto. de données vers autre feuille

Re bonsoir,

- est ce qu'il est possible de partir sur le même principe que ce que tu as fait mais en supprimant simplement la feuille "trame".
Je te rappelle que la feuille trame sert pour créer les nouveaux fournisseurs. Je ne comprends pas ce que tu veux dire.

on m'avait parlé par ex de vba pour les nuls mais je suis assez réservé sur la série pour les nuls...
J'ai commencé par "VBA Excel 2003 pour les nuls" de J.Walkenbach et je peux te dire que ça m'a beaucoup aidé pour éclaircir certaine chose après mes débuts en autodidacte et avant de connaître ce site...
Pour choisir parmi les livres de J.Walkenbach c'est ici
 
Dernière édition:

manuréva

XLDnaute Nouveau
Re : Report auto. de données vers autre feuille

Scoobi, le forum...

Merci mais c'est peut être là ou déjà mes très faibles compétences en vba s'arrêtent...
en posant la question différemment:
pour générer les pages de fournisseurs, est il obligatoire d'avoir une page "trame" ou peux t on la retirer?...à moins que cela soit obligatoire pour réaliser ce que tu as fait...

Par ailleurs, est il possible d'éviter le cumul?
Je m'explique, en retirant toutes les qtés par ex puis en mettant 1 poivron et 1 navet, j'ai donc 2 feuilles fournisseurs qui s'ouvrent avec 1 et 1 seule ligne de produit; Par contre, si je souhaite rajouter 1 table, j'ai bien 1 autre feuille fournisseur qui s'ouvre mais, ds les 2 autres déjà ouvertes, j'ai 2 poivrons et 2 navets mais pas 1 seul de chaque comme souhaité.

Merci pour le tuyau pour les bouquins.
Cdlt
 

skoobi

XLDnaute Barbatruc
Re : Report auto. de données vers autre feuille

Re,

Tu veux pouvoir mettre à jour les qtés de produits par fournisseur, logique.
C'est corrigé.
pour générer les pages de fournisseurs, est il obligatoire d'avoir une page "trame" ou peux t on la retirer?...à moins que cela soit obligatoire pour réaliser ce que tu as fait...
Non ce n'est pas absolument nécessaire mais dans ce cas il faudra créer le tableau par macro......

Edit: ou alors copier le modèle du tableau de la feuille trame dans la feuille Maitre tout à droite de la feuille par exemple. Lors de la création du fournisseur il faudra copier ce nouveau tableau.
 

Pièces jointes

  • manuréva_V2.zip
    14.8 KB · Affichages: 85
Dernière édition:

manuréva

XLDnaute Nouveau
Re : Report auto. de données vers autre feuille

Bonsoir,
Mince alors, je viens d'essayer ton fichier sur une autre bécanne et cela ne marche pas: en fait, lorsque je clique sur le bouton test, celui est "encadré" et j'ai =INCORPORER...qui apparait et je ne peux donc activer l'automatisme selon les qtés;

Par ailleurs, si je comprends bien scoobi, pour cette histoire de trame, il faut que le fichier fasse référence à un tableau (que ce soit sous la forme d'une macro ou sous la forme physique vie une feuille comme tu as fait) et, sans cela, il n'est pas possible de réaliser ce code?
est ce bien cela?

Cdlt.
 

skoobi

XLDnaute Barbatruc
Re : Report auto. de données vers autre feuille

Re bonsoir,

lorsque je clique sur le bouton test, celui est "encadré" et j'ai =INCORPORER...qui apparait et je ne peux donc activer l'automatisme selon les qtés;

C'est car le mode création est actif, il faut le désactiver via la barre d'outil "Visual Basic".
il faut que le fichier fasse référence à un tableau (que ce soit sous la forme d'une macro ou sous la forme physique vie une feuille comme tu as fait) et, sans cela, il n'est pas possible de réaliser ce code?

Non, non, la macro fonctionnera, seulement les données seront écrits de façon "brute" sans tableau en créant simplement une feuille vierge.

A te relire.
 

manuréva

XLDnaute Nouveau
Re : Report auto. de données vers autre feuille

Bonsoir à tous,
Merci encore pour ton aide.
J'ai résolu ce petit souci de macro désactiver.

Est ce que tu peux loger ce tableau trame ds un autre fichier pour qu'il aille ensuite le repécher là ou il est afin que les données soient reprises et listées dans ce tableau?

Cdlt
 

manuréva

XLDnaute Nouveau
Re : Report auto. de données vers autre feuille

Bonjour,
merci scoobi pour ton aide mais est il possible de faire la même chose que ce que tu as fait mais en laissant fermé le fichier trame alors, qu'actuellement, il est nécessaire de l'avoir ouvert pour que cela fonctionne?
merci.
Cdlt
 

skoobi

XLDnaute Barbatruc
Re : Report auto. de données vers autre feuille

Bonjour,

Je ne maitrise pas l'exploitation des fichiers fermés.
Par contre, il est tout à fait possible par VBA d'ouvrir le fichier copier le tableau et refermer le fichier si ça te convient.
 
Dernière édition:

manuréva

XLDnaute Nouveau
Re : Report auto. de données vers autre feuille

Bonjour,
merci encore pour ton aide.
est ce que tu sais si l'on peut le faire via un fichier fermé...même si tu ne sais pas le faire de ton côté...?
tu dis:
Par contre, il est tout à fait possible par VBA d'ouvrir le fichier copier le tableau et refermer le fichier si ça te convient.
est ce que tu peux être un peu plus précis car je ne comprends pas.
Salutations.
 

skoobi

XLDnaute Barbatruc
Re : Report auto. de données vers autre feuille

Bonsoir,

Ce que je veux dire par "fichier fermé" c'est accéder aux informations sans l'ouvrir.
Ce que je te propose c'est une ouverture, copie et fermeture du fichier "trame" en auto dans le code ci-dessous:

Code:
Private Sub CommandButton1_Click()
Dim cellule As Range, dest As Range, produit As Range
Dim trouve As Boolean
Application.ScreenUpdating = False
For Each cellule In Range([A2], [A65536].End(xlUp))
    trouve = False
    If cellule.Value <> "" And cellule.Value <> 0 Then
'ci-dessous on vérifie que la feuille du fournisseur existe
        For i = 1 To Sheets.Count
            If Sheets(i).Name = cellule.Offset(0, 3).Value Then
                trouve = True
                Exit For
            End If
        Next
'si la feuille n'existe pas, on la crée
        If Not trouve Then
            Workbooks.Open ("[COLOR=Blue][B]E:\VBA excel\Forum Excel-Download\[/B][/COLOR]trame.xls")
            ThisWorkbook.Activate
            Workbooks("trame.xls").Sheets("Feuil1").Copy After:=ThisWorkbook.Sheets(Sheets.Count)
            With Sheets(Sheets.Count)
                .Name = cellule.Offset(0, 3).Value
                .[B3].Value = cellule.Offset(0, 3).Value
            End With
            Workbooks("trame.xls").Close savechanges:=False
        End If
'on colle les infos
        With Sheets(cellule.Offset(0, 3).Value)
'on regarde si le produit existe déjà pour le fournisseur, dans le cas contraire on l'ajoute.
            Set produit = .Columns("B").Find(cellule.Offset(0, 1).Value, LookIn:=xlValues, lookat:=xlWhole)
            If produit Is Nothing Then
                Set dest = .[A65536].End(xlUp).Offset(1, 0)
            Else: Set dest = produit.Offset(0, -1)
            End If
            dest.Value = cellule.Offset(0, 2).Value 'référence
            dest.Offset(0, 1).Value = cellule.Offset(0, 1).Value 'produit
            dest.Offset(0, 2).Value = cellule.Value 'qtés
            dest.Offset(0, 3).Value = cellule.Offset(0, 4).Value 'prix unit.
            dest.Offset(0, 4).Value = cellule.Offset(0, 4).Value * cellule.Value 'prix tot.
        End With
    End If
Next
Sheets("Maitre").Activate
Application.ScreenUpdating = True

End Sub
Tu peux remplacer tel quel le code en entier mais il faudra bien sûr changer le chemin vers le fichier "trame" (en gras).

Voilà.
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 325
Membres
103 179
dernier inscrit
BERSEB50