VBA - copier les mêmes données d'un user form dans plusieurs workbooks à la fois

bisoo

XLDnaute Nouveau
Bonjour,

Je suis en train d'essayer de mettre en place un user form permettant de copier les mêmes éléments dans plusieurs fichiers à la fois.
Ca marche pour le fichier 1, çà ne marche plus pour le fichier 2 : pas de bug, mais j'ai l'impression que la cellule est transposée 1 fois, dans le fichier 1, et donc qu'il n'y a rien à copier dans le fichier 2.
=> ma question: que modifier dans le code pour que ce ne soit pas une sorte de "couper coller" mais de "copier coller" ? Sachant qu'après il faudra encore que je recopie ces données dans un 3ème fichier?

Voici le code:

Private Sub Validation_Click()

Dim Position As Integer

'Détermine l'index de la première ligne vide
Position = Worksheets("Fichier concaténé").Range("A999").End(xlUp).Row + 1

' Intègre les valeurs entrées dans le User Form sur la première ligne vide
Worksheets("Fichier concaténé").Range("A" & Position).Value = MasterData.SupplierName.Value

If MasterData.SupplierName.Value = "" Then
MsgBox ("Please enter a supplier name")

Else
Worksheets("Fichier concaténé").Range("B" & Position).Value = MasterData.ContractNumber.Value
Worksheets("Fichier concaténé").Range("C" & Position).Value = MasterData.InternalClient.Value
Worksheets("Fichier concaténé").Range("D" & Position).Value = MasterData.InternalClientBU.Value
Worksheets("Fichier concaténé").Range("F" & Position).Value = MasterData.ContractAdministrator.Value
Worksheets("Fichier concaténé").Range("G" & Position).Value = MasterData.ContractAdministratorBU.Value
Worksheets("Fichier concaténé").Range("I" & Position).Value = MasterData.AP.Value

Unload Me


End If

'c'est là que çà ne marche plus, il copie du vide
Dim wb As Workbook
Set wb = GetObject("C:\Documents and Settings\...\blabla.xls")
wb.Activate

Dim Position2 As Integer


'Détermine l'index de la première ligne vide
Position2 = wb.Worksheets("Circuits").Range("A65000").End(xlUp).Row + 1

If MasterData.SupplierName.Value = "" Then
MsgBox ("Please enter a supplier name")

' Intègre les valeurs entrées dans le User Form sur la première ligne vide
wb.Worksheets("Circuits").Range("A" & Position2).Value = MasterData.SupplierName.Value
wb.Worksheets("Circuits").Range("C" & Position2).Value = MasterData.ContractNumber.Value
wb.Worksheets("Circuits").Range("H" & Position2).Value = MasterData.InternalClient.Value
wb.Worksheets("Circuits").Range("I" & Position2).Value = MasterData.InternalClientBU.Value
wb.Worksheets("Circuits").Range("F" & Position2).Value = MasterData.ContractAdministrator.Value
wb.Worksheets("Circuits").Range("G" & Position2).Value = MasterData.ContractAdministratorBU.Value
wb.Worksheets("Circuits").Range("J" & Position2).Value = MasterData.AP.Value

Unload Me


End If

End Sub

Merci d'avance de votre aide!!!
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - copier les mêmes données d'un user form dans plusieurs workbooks à la fois

Bonjour,

petite question idiote au passage, pourquoi utiliser la fonction "GetObject" et non pas la méthode "open" pour ouvrir le classeur... A noter également que je ne vois pas de code d'enregistrement du dit classeur....

bonne journée
@+
 

bisoo

XLDnaute Nouveau
Re : VBA - copier les mêmes données d'un user form dans plusieurs workbooks à la fois

Bonjour Pierrot!
Le classeur est déjà ouvert (j'en ai besoin pour faire d'autres modifs), donc j'ai plus pensé à "prendre" qu'à "ouvrir" un élément déjà sous la main :-/ Et comme je dois faire d'autres modifs ensuite, c'est pour cela que je ne fais d'enregistrement.
Je souhaite "juste" enregistrer 3 fois, sur 3 fichiers différents, des données où il est facile de se tromper en saisie manuelle (et pour gagner du temps, c'est agaçant de recopier 3 fois la même chose!). Mais je me retrouve avec du "vide" à copier en deuxième fichier :-/
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - copier les mêmes données d'un user form dans plusieurs workbooks à la fois

Re,

pas tout compris..... s'il est déjà ouvert pourquoi utiliser "GetObject".... A noter aussi qu'avec cette fonction la fenêtre en question est masquée, il y a lieu de la rendre visible pour que les enregistrements soient pris en compte....
Code:
Windows(Wb.Name).Visible = True
 

bisoo

XLDnaute Nouveau
Re : VBA - copier les mêmes données d'un user form dans plusieurs workbooks à la fois

Merci Pierrot!
Hélas... ca ne change rien :-( Toujours rien de copié sur le 2ème fichier!
Pour "getobject", c'est sans doute que je me suis trompée, je suis une littéraire, pas une ingé, et là je tente une macro parce que j'en ai ras-le-bol de passer autant de temps par semaine à faire du copier coller, et parfois même, pire, à me planter dans les copier coller. Si tu vois une autre manière de le faire, n'hésite pas :))
 

bisoo

XLDnaute Nouveau
Re : VBA - copier les mêmes données d'un user form dans plusieurs workbooks à la fois

Oui, mon 2ème fichier est ouvert!
J'ai un peu changé le code, mais toujours le même problème, rien ne s'enregistre dans le 2ème fichier:
Private Sub Validation_Click()

Dim Position As Integer

'Détermine l'index de la première ligne vide
Position = Worksheets("Fichier concaténé").Range("A999").End(xlUp).Row + 1

' Intègre les valeurs entrées dans le User Form sur la première ligne vide
Worksheets("Fichier concaténé").Range("A" & Position).Value = MasterData.SupplierName.Value

If MasterData.SupplierName.Value = "" Then
MsgBox ("Please enter a supplier name")

Else
Worksheets("Fichier concaténé").Range("B" & Position).Value = MasterData.ContractNumber.Value
Worksheets("Fichier concaténé").Range("C" & Position).Value = MasterData.InternalClient.Value
Worksheets("Fichier concaténé").Range("D" & Position).Value = MasterData.InternalClientBU.Value
Worksheets("Fichier concaténé").Range("F" & Position).Value = MasterData.ContractAdministrator.Value
Worksheets("Fichier concaténé").Range("G" & Position).Value = MasterData.ContractAdministratorBU.Value
Worksheets("Fichier concaténé").Range("I" & Position).Value = MasterData.AP.Value

End If


Dim wb As Workbook
Set wb = Workbooks.Open("C:\Documents and Settings\xxxx\Nouveaux circuits IAW 20120710.xls")
wb.Activate

Windows(wb.Name).Visible = True

Dim Position2 As Integer


'Détermine l'index de la première ligne vide
Position2 = wb.Worksheets("Circuits").Range("A65000").End(xlUp).Row + 1

If MasterData.SupplierName.Value = "" Then
MsgBox ("Please enter a supplier name")

' Intègre les valeurs entrées dans le User Form sur la première ligne vide
wb.Worksheets("Circuits").Range("A" & Position2).Value = MasterData.SupplierName.Value
wb.Worksheets("Circuits").Range("C" & Position2).Value = MasterData.ContractNumber.Value
wb.Worksheets("Circuits").Range("H" & Position2).Value = MasterData.InternalClient.Value
wb.Worksheets("Circuits").Range("I" & Position2).Value = MasterData.InternalClientBU.Value
wb.Worksheets("Circuits").Range("F" & Position2).Value = MasterData.ContractAdministrator.Value
wb.Worksheets("Circuits").Range("G" & Position2).Value = MasterData.ContractAdministratorBU.Value
wb.Worksheets("Circuits").Range("J" & Position2).Value = MasterData.AP.Value

End If

Unload Me

End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - copier les mêmes données d'un user form dans plusieurs workbooks à la fois

Re,

bah pas la peine de charcher à l'ouvrir une 2ème fois... remplace la ligne "open" par :
Code:
Set wb = Workbooks.("Nouveaux circuits IAW 20120710.xls")
wb.Activate
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - copier les mêmes données d'un user form dans plusieurs workbooks à la fois

Re,

aucune valeur dans wb soit "Nouveaux circuits IAW 20120710.xls", étrange ton truc, mais avant d'envoyer les donées, tu testes "If MasterData.SupplierName.Value = "", ce qui veut dire que tu ne le fait que s'il n'y a rien sur la "textbox" ??? testes ton code pas à pas voir voir plus en détail ce qu'il fait (touche de fonction F8 dans l'éditeur vba) après avoir placé un point d'arret (touche F9) au début de ta procédure... sans pouvoir tester moi même difficile de t'en dire plus.....