A voir également:
- VBA Excel - copie cellules vers autre fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
Bonjour,
Set wb = GetObject("C:\...toto.xlsx") ??
Essaye plutôt
Et je supose que tu est dans un Userform ? si oui,
Supprime le premier Unlod.Me
Et le 2èm tu le déplace juste avant le End Sub
A+
PS: Une fois que tu met Unload.Me la suite de la procédure ne se fait pas.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Set wb = GetObject("C:\...toto.xlsx") ??
Essaye plutôt
Set wb = WorkBooks.Open("C:\...toto.xlsx")
Et je supose que tu est dans un Userform ? si oui,
Supprime le premier Unlod.Me
Et le 2èm tu le déplace juste avant le End Sub
A+
PS: Une fois que tu met Unload.Me la suite de la procédure ne se fait pas.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Re,
Un peu en aveugle..
Essaye ça
A+
Un peu en aveugle..
Essaye ça
Private Sub Validation_Click() Dim LigneVide As Long Dim wb As Workbook If SupplierName.Value = "" Then MsgBox ("Please enter a supplier name") Exit Sub End If With Worksheets("Fichier concaténé") 'Détermine l'index de la première ligne vide LigneVide = .Cells(Rows.Count, "A").End(xlUp).Row + 1 ' Intègre les valeurs entrées dans le User Form sur la première ligne vide .Range("A" & LigneVide).Value = SupplierName.Value .Range("B" & LigneVide).Value = ContractNumber.Value .Range("C" & LigneVide).Value = InternalClient.Value .Range("D" & LigneVide).Value = InternalClientBU.Value .Range("F" & LigneVide).Value = ContractAdministrator.Value .Range("G" & LigneVide).Value = ContractAdministratorBU.Value .Range("I" & LigneVide).Value = MasterData.AP.Value End With 'c'est cette partie qui ne fonctionne pas Set wb = Workbooks.Open("C:\...toto.xlsx") With wb.Worksheets("Circuits") 'Détermine l'index de la première ligne vide LigneVide = .Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Intègre les valeurs entrées dans le User Form sur la première ligne vide .Range("A" & LigneVide).Value = SupplierName.Value .Range("C" & LigneVide).Value = ContractNumber.Value .Range("H" & LigneVide).Value = InternalClient.Value .Range("I" & LigneVide).Value = InternalClientBU.Value .Range("F" & LigneVide).Value = ContractAdministrator.Value .Range("G" & LigneVide).Value = ContractAdministratorBU.Value .Range("J" & LigneVide).Value = AP.Value .Save .Close End With Unload Me End Sub
A+
Par contre, grrr, au final c'est toujours la même chose, rien ne s'enregistre dans le 2ème workbook. On dirait que le user form ne garde pas en mémoire ce qui a été enregistré. Il le "coupe colle" dans le 1er fichier et du coup il n'y a plus rien à mettre dans le 2ème fichier. Sais-tu comment je peux faire plutôt du "copier coller", de manière à pouvoir enregistrer plusieurs fois, dans des fichiers différents, la même donnée saisie dans un user form?