URGENT MERCI DE M'AIDER REUCUPERATION D'UN FORMULAIRE DANS PLUSIEURS FICHIERS EX

cs_patrev Messages postés 9 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 28 juin 2005 - 28 juin 2005 à 12:16
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 28 juin 2005 à 17:24
Bonjour à Tous

voilà j'ai un formulaire correspondant pour mon fichier excel CREATION NEW.XLS dans lequel je récupére plusieurs champs.

mais dans ce même formulaire je viens de rajouter des champs qui doivent être récupérés dans deux fichiers différents mais cela ne fonctionne pas la macro ouvre bien les fichiers mais elle ecrit dans la sheet2 du fichier creation new.xls.

Voici une partie du code que j'ai écris.

Private Sub CommandButton1_Click()
Dim LastRow As Object


Set LastRow = Sheet1.Range("a65536").End(xlUp)
LastRow.Offset(1, 0).Value = "MM01"
LastRow.Offset(1, 1).Value = TextBox1.Text
LastRow.Offset(1, 2).Value = "M"

Set LastRow = Sheet2.Range("a65536").End(xlUp)
LastRow.Offset(1, 0).Value = TextBox1.Text


If TextBox6 "" Then
LastRow.Offset(1, 1).Value = TextBox6
Else
LastRow.Offset(1, 1).Value = ""
End If






Workbooks.Open Filename:= _
"S:\Shared\CREATION - EXTENSION PRODUITS SAP\ConditionsRec_FR N.xls"
Set LastRow = Sheet2.Range("a65536").End(xlUp)
Windows("ConditionsRec_FR N.xls").Activate
Sheets("ZEPR1").Select
LastRow.Offset(1, 0).Value = "'0070"
LastRow.Offset(1, 1).Value = "EUR"
LastRow.Offset(1, 4).Value = TextBox15
LastRow.Offset(1, 5).Value = TextBox16

If TextBox12 "" Then
LastRow.Offset(1, 6).Value = TextBox12
Else
LastRow.Offset(1, 6).Value = Label70
End If


Workbooks.Open Filename:= _
"S:\Shared\CREATION - EXTENSION PRODUITS SAP\ConditionsRec_FR P.xls"
Windows("ConditionsRec_FR P.xls").Activate
Sheets("ZEPR1").Select
Set LastRow = Sheet2.Range("a65536").End(xlUp)
LastRow.Offset(1, 0).Value = "'0070"
LastRow.Offset(1, 1).Value = "EUR"
LastRow.Offset(1, 4).Value = TextBox13
LastRow.Offset(1, 5).Value = TextBox14


If TextBox17 "" Then
LastRow.Offset(1, 6).Value = TextBox17
Else
LastRow.Offset(1, 6).Value = Label72
End If








MsgBox "Votre création à bien été enregistré"


response = MsgBox("Avez vous une autre création à faire?", vbYesNo)

If response = vbYes Then
TextBox1.Text = ""
TextBox2.Text = ""

TextBox1.SetFocus

Else
Unload Me
End If




End Sub
UN GRAND MERCI DE VOTRE AIDE

Merci de votre aide
Cordialement

PATREV

3 réponses

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
28 juin 2005 à 15:50
Tu devrais faire le transfert dans un fichier, l'ouvrir le fermer

et ensuite ouvrir l'autre fichier, transférer et le fermer.

Dans ton code, je ne vois pas de commande pour fermer le fichier Excel que tu as ouvert.

De plus, je ne vois pas la déclaration de l'objet Excel...?

Set ClasseurXLS = CreateObject("Excel.application")

ClasseurXLS.Workbooks.Open Emplacement & Fichier

'Activation de la feuille que l'on veut remplir

ClasseurXLS.Workbooks("Fichier.xls").Worksheets(Feuille).Activate

'Pour insérer des données dans les cellules

ClasseurXLS.Cells(5,2) = "truc"

'Pour fermer le classeur

ClasseurXLS.Workbooks.Close

'Fermeture de l'objet Excel

Set ClasseurXLS = Nothing



J'utilise ça pour écrire dans un fichier Excel à partir d'access.

Maintenant, si tu veux écrire dans un autre fichier Excel, à partir d'un fichier, Excel, ça peut t'être utile.
TBBUIM
cs_patrev Messages postés 9 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 28 juin 2005
28 juin 2005 à 16:11
je te remercie pour ces renseignements mais peux tu m'éclairer un petit plus sur :

De plus, je ne vois pas la déclaration de l'objet Excel...?
Set ClasseurXLS = CreateObject("Excel.application")
ClasseurXLS.Workbooks.Open Emplacement & Fichier

voilà ce que moi j'ai écris et je pense que j'ai du oublier quelque chose?

la macro ouvre bien le fichier mais ellle récupére les données dans le fichier de base sur la sheet 2 et non dans la sheet2 du fichier ouvert.

Workbooks.Open Filename:= _
"S:\Shared\CREATION - EXTENSION PRODUITS SAP\ConditionsRec_FR N.xls"
Set LastRow = Sheet2.Range("a65536").End(xlUp)
Windows("ConditionsRec_FR N.xls").Activate
Sheets("ZEPR1").Select
LastRow.Offset(1, 0).Value = "'0070"
LastRow.Offset(1, 1).Value = "EUR"
LastRow.Offset(1, 4).Value = TextBox15
LastRow.Offset(1, 5).Value = TextBox16

If TextBox12 <> "" Then
LastRow.Offset(1, 6).Value = TextBox12
Else
LastRow.Offset(1, 6).Value = Label70
End If

Merci de votre aide
Cordialement

PATREV
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
28 juin 2005 à 17:24
Tu ne dis à aucun moment avec quoi tu travailles!

Tu veux faire un transfert en vba d'un fichier Excel à un autre?

D'un Access à 2 fichiers Excel?

Autres?

Tu dis récupérations d'un formulaire...

Formulaire sous Access, sous Excel, autres?



A priori, ça parait normal, car elle récupère les infos là ou tu lui
dis de les récupérer... En fait, il faudrait spécifier que c la
feuille2 du fichier untel

Et là, à aucun moment tu le dis, donc par défaut, la sheet2 pour lui c celle de ton fichier source!



Donc pour moi, il doit manquer un truc du style

ClasseurXLS.Workbooks("Fichier.xls").Worksheets(Feuille).Activate



D'excel à Excel, je viens de faire le test, et ça marche!

Récupére mon code, en l'adaptant un peu bien entendu à ta situation

J'ai fait ça et ça marche sans problème...

Sub Macro1()

Set ClasseurXLS = CreateObject("Excel.application")

ClasseurXLS.Workbooks.Open "C:\Classeur2.xls"

'Activation de la feuille que l'on veut remplir

ClasseurXLS.Workbooks("Classeur2.xls").Worksheets("Feuil2").Activate

'Pour insérer des données dans les cellules

ClasseurXLS.Cells(1, 1) = Range("A1").Value

'Pour fermer le classeur

ClasseurXLS.Workbooks.Close

'Fermeture de l'objet Excel

Set ClasseurXLS = Nothing

End sub

Et il m'a bien rempli la 1ere ligne de ma feuille2 à partir la coellule A1 de mon fichier Excel d'ou est lancé ma macro.
TBBUIM
Rejoignez-nous