• Initiateur de la discussion Initiateur de la discussion tal88
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tal88

XLDnaute Nouveau
Bonjour, je suis nouveau sur le forum et débutant en VBA.
Voici mon problème.
J'ai deux fichier A (Formulaire de relevé B (Base donnée)
J'aimerai qu'à chaque fois que l'opérateur remplit les données dans le formulaire A et pendant qu'il sauvegarde, quelques données soient transférées directement sur la base de donnée B.
Les deux fichiers sont sauvegardés dans le même répertoire.
J'ai besoin d'un code VBA.
Merci
 
Bonsoir @tal88 le Forum

Voici une approche, mais tu as du pain sur la planche.... Ton Formulaire "A" n'a jamais été prévu pour être transférré sur une Base de Données linéaire... Tu dois aller pêcher les infos dans tous les sens, donc un énorme travail de patience...

Au moins avec cette démo, tu sauras comment gérer deux classeurs en même temps (voir Module_Thierry, (je n'ai pas regardé le reste des macros)

Dezipper les deux fichier dans le même répertoire de Test, ouvrir uniquement "XLD_Tal88_Test_PV_unique_dev_transData_v00.xlsm" et le bouton @+Thierry

Bonne découverte
@+Thierry
 

Pièces jointes

Bonsoir @tal88 le Forum

Voici une approche, mais tu as du pain sur la planche.... Ton Formulaire "A" n'a jamais été prévu pour être transférré sur une Base de Données linéaire... Tu dois aller pêcher les infos dans tous les sens, donc un énorme travail de patience...

Au moins avec cette démo, tu sauras comment gérer deux classeurs en même temps (voir Module_Thierry, (je n'ai pas regardé le reste des macros)

Dezipper les deux fichier dans le même répertoire de Test, ouvrir uniquement "XLD_Tal88_Test_PV_unique_dev_transData_v00.xlsm" et le bouton @+Thierry

Bonne découverte
@+Thierry
Merci Thierry, je vois déjà ton approche. je te tiens informé. Merci
 
Bonjour @tal88, le Forum

Un loop sur les feuilles serait interressant si elles ont exactement la même sruture...
Tout dépend en fait, si tu as plusieurs Feuilles "Fomulaires" avec les mêmes cellules à récupérer et à envoyer à la suite sur le Classeur BDD, par exemple on pourrait faire ceci

VB:
For Each WSSource In ThisWorkbook.Worksheets

        With WSCible '<<<<<<<< Vu que ton formulaire n'est pas du tout structuré, pas vraiment moyen de faire une boucle, donc il faut tout renseigner....
        .Range("A" & L) = WSSource.Range("C12")
        .Range("B" & L) = WSSource.Range("C5")
        .Range("C" & L) = WSSource.Range("G5")
        .Range("D" & L) = WSSource.Range("E8")
        .Range("E" & L) = WSSource.Range("G8")
        .Range("F" & L) = WSSource.Range("H12")
        .Range("G" & L) = WSSource.Range("D17")
        .Range("H" & L) = WSSource.Range("E17")
        .Range("I" & L) = WSSource.Range("F17")
        .Range("J" & L) = WSSource.Range("G17")
        '......  Etc etc....
        End With
Next WSSource

Bon courage
@+Thierry
 
Bonjour @tal88, le Forum

Un loop sur les feuilles serait interressant si elles ont exactement la même sruture...
Tout dépend en fait, si tu as plusieurs Feuilles "Fomulaires" avec les mêmes cellules à récupérer et à envoyer à la suite sur le Classeur BDD, par exemple on pourrait faire ceci

VB:
For Each WSSource In ThisWorkbook.Worksheets

        With WSCible '<<<<<<<< Vu que ton formulaire n'est pas du tout structuré, pas vraiment moyen de faire une boucle, donc il faut tout renseigner....
        .Range("A" & L) = WSSource.Range("C12")
        .Range("B" & L) = WSSource.Range("C5")
        .Range("C" & L) = WSSource.Range("G5")
        .Range("D" & L) = WSSource.Range("E8")
        .Range("E" & L) = WSSource.Range("G8")
        .Range("F" & L) = WSSource.Range("H12")
        .Range("G" & L) = WSSource.Range("D17")
        .Range("H" & L) = WSSource.Range("E17")
        .Range("I" & L) = WSSource.Range("F17")
        .Range("J" & L) = WSSource.Range("G17")
        '......  Etc etc....
        End With
Next WSSource

Bon courage
@+Thierry

Oui les feuilles auront la même structure.
Exemple FCS0001 pour la 1 et FCS0002 ainsi de suite. je pense faire : nbfeuilles = ThisWorkbook.Sheets.Count
puis une boucle For ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
244
Retour