OVH Cloud OVH Cloud

va et vient entre 2 classeurs

7 réponses
Avatar
lea
Bonjour à tous,

J'ai un classeur qui a un nom différent à chaque ouverture et qui fait appel
à un formulaire du classeur "facture" et, les données saisies dans ce
formulaire doivent aller dans le classeur "facture" feuil1 et aussi dans le
classeur en cours.
Je sais transférer les données dans le classeur "facture":
Workbooks("facture").Select puis la suite du code; mais comment lui dire de
revenir au classeur sur lequel le formulaire a été lancé et de transférer
ces même données dans la feuil2 de ce classeur?

Merci pour votre aide
Léa

7 réponses

Avatar
Philippe.R
Bonjour Léa,
Un truc dans ce genre devrait pouvoir servir de base

Dim Lwbk As String 'Declare le nom du classeur
Lwbk=thisworkbook.name
'..............ton code
'X est la lettre désignant le lecteur de résidence (à adapter)
Workbooks.Open Filename:="X:" & Lwbk, UpdateLinks:=3
sheets(feuil2").activate
'..............suite du code
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"lea" a écrit dans le message de news:
Bonjour à tous,

J'ai un classeur qui a un nom différent à chaque ouverture et qui fait appel à un formulaire du
classeur "facture" et, les données saisies dans ce formulaire doivent aller dans le classeur "facture"
feuil1 et aussi dans le classeur en cours.
Je sais transférer les données dans le classeur "facture": Workbooks("facture").Select puis la suite
du code; mais comment lui dire de revenir au classeur sur lequel le formulaire a été lancé et de
transférer ces même données dans la feuil2 de ce classeur?

Merci pour votre aide
Léa



Avatar
lea
Bonjour Philippe,

Merci pour ta réponse.
Par contre, je suis débutante en VBA donc, je vais abusée et te demander
plus de précisions car je n'arrive pas à bien adapté ton code: Voici ce que
j'ai bidouillé!

Private Sub Cmdvalider_click()
'vérifie que les champs texte sont remplis
If Txtprod.Value = "" Then
MsgBox ("Merci de mettre le produit!")
Exit Sub
End If

Dim Lwbk As String 'Declare le nom du classeur
Lwbk = ThisWorkbook.Name
(Dois je mettre le code qui envoie les infos du formulaire dans mon classeur
en cours ou dans classeur "facture"?)

Workbooks("facture.xls").Select
'indications de la feuilles et des cellules à remplir
num = Sheets("feuil1").Range("A65536").End(xlUp).Row + 1
'récupération des textbox et combobox
With Sheets("feuil1")
.Range("b" & num).Value = Txtcol.Value

'X est la lettre désignant le lecteur de résidence (à adapter)
Workbooks.Open Filename:="c:devis" & Lwbk, UpdateLinks:=3 (Dois-je mettre
le chemin c:devis de mon classeur en cours?)
Sheets("feuil2").Activate


Je te remercie d'avanace
Lea
"Philippe.R" a écrit dans le message de news:
e2Q%
Bonjour Léa,
Un truc dans ce genre devrait pouvoir servir de base

Dim Lwbk As String 'Declare le nom du classeur
Lwbk=thisworkbook.name
'..............ton code
'X est la lettre désignant le lecteur de résidence (à adapter)
Workbooks.Open Filename:="X:" & Lwbk, UpdateLinks:=3
sheets(feuil2").activate
'..............suite du code
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"lea" a écrit dans le message de news:

Bonjour à tous,

J'ai un classeur qui a un nom différent à chaque ouverture et qui fait
appel à un formulaire du classeur "facture" et, les données saisies dans
ce formulaire doivent aller dans le classeur "facture" feuil1 et aussi
dans le classeur en cours.
Je sais transférer les données dans le classeur "facture":
Workbooks("facture").Select puis la suite du code; mais comment lui dire
de revenir au classeur sur lequel le formulaire a été lancé et de
transférer ces même données dans la feuil2 de ce classeur?

Merci pour votre aide
Léa






Avatar
Philippe.R
Re Léa,
Je viens de voir s'afficher une réponse de ta part, que je n'ai pas eu le temps de charger et que je ne
peux lire ; peux tu stp la republier ?
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Philippe.R" a écrit dans le message de news:
e2Q%
Bonjour Léa,
Un truc dans ce genre devrait pouvoir servir de base

Dim Lwbk As String 'Declare le nom du classeur
Lwbk=thisworkbook.name
'..............ton code
'X est la lettre désignant le lecteur de résidence (à adapter)
Workbooks.Open Filename:="X:" & Lwbk, UpdateLinks:=3
sheets(feuil2").activate
'..............suite du code
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"lea" a écrit dans le message de news:
Bonjour à tous,

J'ai un classeur qui a un nom différent à chaque ouverture et qui fait appel à un formulaire du
classeur "facture" et, les données saisies dans ce formulaire doivent aller dans le classeur
"facture" feuil1 et aussi dans le classeur en cours.
Je sais transférer les données dans le classeur "facture": Workbooks("facture").Select puis la suite
du code; mais comment lui dire de revenir au classeur sur lequel le formulaire a été lancé et de
transférer ces même données dans la feuil2 de ce classeur?

Merci pour votre aide
Léa






Avatar
lea
"lea" a écrit dans le message de news:

Bonjour Philippe,

Merci pour ta réponse.
Par contre, je suis débutante en VBA donc, je vais abusée et te demander
plus de précisions car je n'arrive pas à bien adapté ton code: Voici ce
que j'ai bidouillé!

Private Sub Cmdvalider_click()
'vérifie que les champs texte sont remplis
If Txtprod.Value = "" Then
MsgBox ("Merci de mettre le produit!")
Exit Sub
End If

Dim Lwbk As String 'Declare le nom du classeur
Lwbk = ThisWorkbook.Name
(Dois je mettre le code qui envoie les infos du formulaire dans mon
classeur en cours ou dans classeur "facture"?)

Workbooks("facture.xls").Select
'indications de la feuilles et des cellules à remplir
num = Sheets("feuil1").Range("A65536").End(xlUp).Row + 1
'récupération des textbox et combobox
With Sheets("feuil1")
.Range("b" & num).Value = Txtcol.Value

'X est la lettre désignant le lecteur de résidence (à adapter)
Workbooks.Open Filename:="c:devis" & Lwbk, UpdateLinks:=3 (Dois-je mettre
le chemin c:devis de mon classeur en cours?)
Sheets("feuil2").Activate


Je te remercie d'avanace
Lea
"Philippe.R" a écrit dans le message de news:
e2Q%
Bonjour Léa,
Un truc dans ce genre devrait pouvoir servir de base

Dim Lwbk As String 'Declare le nom du classeur
Lwbk=thisworkbook.name
'..............ton code
'X est la lettre désignant le lecteur de résidence (à adapter)
Workbooks.Open Filename:="X:" & Lwbk, UpdateLinks:=3
sheets(feuil2").activate
'..............suite du code
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"lea" a écrit dans le message de news:

Bonjour à tous,

J'ai un classeur qui a un nom différent à chaque ouverture et qui fait
appel à un formulaire du classeur "facture" et, les données saisies dans
ce formulaire doivent aller dans le classeur "facture" feuil1 et aussi
dans le classeur en cours.
Je sais transférer les données dans le classeur "facture":
Workbooks("facture").Select puis la suite du code; mais comment lui dire
de revenir au classeur sur lequel le formulaire a été lancé et de
transférer ces même données dans la feuil2 de ce classeur?

Merci pour votre aide
Léa










Avatar
Philippe.R
Re,
Je verrais bien quelquechose comme ceci, avec ces lignes :

Dim Lwbk As String 'Declare le nom du classeur
Lwbk = ThisWorkbook.fullName

placées dans la procédure du classeur à nom variable qui appelle le formulaire facture.

Ensuite le code qui fait appel à Facture (je suppose qu'il existe)

et enfin, ta procédure du formulaire :

Private Sub Cmdvalider_click()
'vérifie que les champs texte sont remplis
If Txtprod.Value = "" Then
MsgBox ("Merci de mettre le produit!")
Exit Sub
End If

Workbooks("facture.xls").Select
'indications de la feuilles et des cellules à remplir
num = Sheets("feuil1").Range("A65536").End(xlUp).Row + 1
'récupération des textbox et combobox
With Sheets("feuil1")
.Range("b" & num).Value = Txtcol.Value

lwbk.activate
With Sheets("feuil2")
.Range("b" & num).Value = Txtcol.Value
end sub
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"lea" a écrit dans le message de news:

"lea" a écrit dans le message de news:
Bonjour Philippe,

Merci pour ta réponse.
Par contre, je suis débutante en VBA donc, je vais abusée et te demander plus de précisions car je
n'arrive pas à bien adapté ton code: Voici ce que j'ai bidouillé!

Private Sub Cmdvalider_click()
'vérifie que les champs texte sont remplis
If Txtprod.Value = "" Then
MsgBox ("Merci de mettre le produit!")
Exit Sub
End If

Dim Lwbk As String 'Declare le nom du classeur
Lwbk = ThisWorkbook.Name
(Dois je mettre le code qui envoie les infos du formulaire dans mon classeur en cours ou dans
classeur "facture"?)

Workbooks("facture.xls").Select
'indications de la feuilles et des cellules à remplir
num = Sheets("feuil1").Range("A65536").End(xlUp).Row + 1
'récupération des textbox et combobox
With Sheets("feuil1")
.Range("b" & num).Value = Txtcol.Value

'X est la lettre désignant le lecteur de résidence (à adapter)
Workbooks.Open Filename:="c:devis" & Lwbk, UpdateLinks:=3 (Dois-je mettre le chemin c:devis de mon
classeur en cours?)
Sheets("feuil2").Activate


Je te remercie d'avanace
Lea
"Philippe.R" a écrit dans le message de news:
e2Q%
Bonjour Léa,
Un truc dans ce genre devrait pouvoir servir de base

Dim Lwbk As String 'Declare le nom du classeur
Lwbk=thisworkbook.name
'..............ton code
'X est la lettre désignant le lecteur de résidence (à adapter)
Workbooks.Open Filename:="X:" & Lwbk, UpdateLinks:=3
sheets(feuil2").activate
'..............suite du code
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"lea" a écrit dans le message de news:
Bonjour à tous,

J'ai un classeur qui a un nom différent à chaque ouverture et qui fait appel à un formulaire du
classeur "facture" et, les données saisies dans ce formulaire doivent aller dans le classeur
"facture" feuil1 et aussi dans le classeur en cours.
Je sais transférer les données dans le classeur "facture": Workbooks("facture").Select puis la
suite du code; mais comment lui dire de revenir au classeur sur lequel le formulaire a été lancé et
de transférer ces même données dans la feuil2 de ce classeur?

Merci pour votre aide
Léa














Avatar
lea
Re,

Le code me transfère bien mes données dans le classeur en cours puis dans
classeur facture mais le code bug sur : lwbk.activate

Pourtant j'ai bien déclaré le nom du classeur dans la procédure du bouton
qui appel le formulaire:

Sub creatarticle()
Application.Run "facture.xls!afficheusfarticle2"
Dim Lwbk As String 'Declare le nom du classeur
Lwbk = ThisWorkbook.FullName

Léa

"Philippe.R" a écrit dans le message de news:

Re,
Je verrais bien quelquechose comme ceci, avec ces lignes :

Dim Lwbk As String 'Declare le nom du classeur
Lwbk = ThisWorkbook.fullName

placées dans la procédure du classeur à nom variable qui appelle le
formulaire facture.

Ensuite le code qui fait appel à Facture (je suppose qu'il existe)

et enfin, ta procédure du formulaire :

Private Sub Cmdvalider_click()
'vérifie que les champs texte sont remplis
If Txtprod.Value = "" Then
MsgBox ("Merci de mettre le produit!")
Exit Sub
End If

Workbooks("facture.xls").Select
'indications de la feuilles et des cellules à remplir
num = Sheets("feuil1").Range("A65536").End(xlUp).Row + 1
'récupération des textbox et combobox
With Sheets("feuil1")
.Range("b" & num).Value = Txtcol.Value

lwbk.activate
With Sheets("feuil2")
.Range("b" & num).Value = Txtcol.Value
end sub
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"lea" a écrit dans le message de news:


"lea" a écrit dans le message de news:

Bonjour Philippe,

Merci pour ta réponse.
Par contre, je suis débutante en VBA donc, je vais abusée et te demander
plus de précisions car je n'arrive pas à bien adapté ton code: Voici ce
que j'ai bidouillé!

Private Sub Cmdvalider_click()
'vérifie que les champs texte sont remplis
If Txtprod.Value = "" Then
MsgBox ("Merci de mettre le produit!")
Exit Sub
End If

Dim Lwbk As String 'Declare le nom du classeur
Lwbk = ThisWorkbook.Name
(Dois je mettre le code qui envoie les infos du formulaire dans mon
classeur en cours ou dans classeur "facture"?)

Workbooks("facture.xls").Select
'indications de la feuilles et des cellules à remplir
num = Sheets("feuil1").Range("A65536").End(xlUp).Row + 1
'récupération des textbox et combobox
With Sheets("feuil1")
.Range("b" & num).Value = Txtcol.Value

'X est la lettre désignant le lecteur de résidence (à adapter)
Workbooks.Open Filename:="c:devis" & Lwbk, UpdateLinks:=3 (Dois-je
mettre le chemin c:devis de mon classeur en cours?)
Sheets("feuil2").Activate


Je te remercie d'avanace
Lea
"Philippe.R" a écrit dans le message de news:
e2Q%
Bonjour Léa,
Un truc dans ce genre devrait pouvoir servir de base

Dim Lwbk As String 'Declare le nom du classeur
Lwbk=thisworkbook.name
'..............ton code
'X est la lettre désignant le lecteur de résidence (à adapter)
Workbooks.Open Filename:="X:" & Lwbk, UpdateLinks:=3
sheets(feuil2").activate
'..............suite du code
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"lea" a écrit dans le message de news:

Bonjour à tous,

J'ai un classeur qui a un nom différent à chaque ouverture et qui fait
appel à un formulaire du classeur "facture" et, les données saisies
dans ce formulaire doivent aller dans le classeur "facture" feuil1 et
aussi dans le classeur en cours.
Je sais transférer les données dans le classeur "facture":
Workbooks("facture").Select puis la suite du code; mais comment lui
dire de revenir au classeur sur lequel le formulaire a été lancé et de
transférer ces même données dans la feuil2 de ce classeur?

Merci pour votre aide
Léa

















Avatar
Alain CROS
Bonjour.

Dim Lwbk As String 'Declare le nom du classeur
Lwbk = ThisWorkbook.Name
'
'Ici le code
'
Workbooks(Lwbk ).Activate

Alain CROS

"lea" a écrit dans le message de news:
Re,

Le code me transfère bien mes données dans le classeur en cours puis dans
classeur facture mais le code bug sur : lwbk.activate

Pourtant j'ai bien déclaré le nom du classeur dans la procédure du bouton
qui appel le formulaire:

Sub creatarticle()
Application.Run "facture.xls!afficheusfarticle2"
Dim Lwbk As String 'Declare le nom du classeur
Lwbk = ThisWorkbook.FullName

Léa