Transfert de data

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
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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

  • XLD_Tal88_Test_PV_unique_dev_transData_v00.zip
    208.2 KB · Affichages: 9

tal88

XLDnaute Nouveau
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
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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
 

tal88

XLDnaute Nouveau
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 ?
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour,

Voilà c'est modifié en v01, tu as un Select Case pour Ignorer les Feuilles que tu souhaites...

Bonne découverte
@+Thierry
 

Pièces jointes

  • XLD_Tal88_Test_PV_unique_dev_transData_v01.xlsm
    212.3 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
312 115
Messages
2 085 453
Membres
102 890
dernier inscrit
selkis