transfert de données

Le
CBR
Bonjour à tous

Petit problème que je n'arrive pas à résoudre. (Bon c'est vrai, j'ai
cherché, sans plus, zig.)
A savoir, comment transférer des données récupérées sur une feuille Excel
d'un classeur ouvert
vers une feuille d'un autre classeur sans ouvrir ce dernier et à la suite
d'entrées précédentes ????

Ceci à l'aide d'une macro bien sur, située dans le classeur ouvert.
(A moins que !!! La macro ne soit pas nécessaire ???? )

Merci de votre aide

CBR
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
cousinhub
Le #4509151
Bonsoir, sans chercher vraiment, ou sans vraiment chercher? Zag.....)
issu d'une question vieille quand même de 2 jours, c'est vrai, on n'a
plus le même président, une solution offerte par JB :

rep = "d:classeurs"
nf = Dir(rep & "*.xls")
Do While nf <> ""
Workbooks.Open Filename:=rep & nf
[A1] = DateSerial(2007,1,1)
ActiveWorkbook.Save
ActiveWorkbook.Close
nf = Dir
Loop

A modifier bien évidemment....
PS, écrire dans un fichier fermé, c'est comme gagner au tiercé sans
jouer.....;-)
Reviens si tu as un souci, mais t'as vu le principe, déterminer le
répertoire, situer le fichier, l'ouvrir, y écrire ce que tu veux,
enregistrer, le fermer.
Tu peux en plus y rajouter une instruction en début de code :

Application.ScreenUpdating = False

afin d'éviter des clignotements intempestifs....
Bonne soirée

Bonjour à tous

Petit problème que je n'arrive pas à résoudre. (Bon c'est vrai, j'ai
cherché, sans plus, zig....)
A savoir, comment transférer des données récupérées sur une feuille Excel
d'un classeur ouvert
vers une feuille d'un autre classeur sans ouvrir ce dernier et à la suite
d'entrées précédentes ????

Ceci à l'aide d'une macro bien sur, située dans le classeur ouvert.
(A moins que !!! La macro ne soit pas nécessaire ???? )

Merci de votre aide

CBR




Boisgontier
Le #4509131
Bonsoir,

Nom Prenom Age DateNaissance Ville
TERRIEUR ALAIN 22 01/02/1975 CAEN
SUPER MAN 23 21/03/1974 LILLE
HYPER MEDIA 33 03/12/1980 REIMS
QUINT CHARLES 44 18/03/1982 TOURS


Sub ajout()
ChDir ActiveWorkbook.Path
Set Cnn = New ADODB.Connection
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source­ODestination.XLS;Extended Properties=Excel 8.0;"
For i = 1 To [BDorigine].Rows.Count - 1
Sql = "INSERT INTO BDDestination (Nom,Prenom,age,DateNaissance,Ville)" _
& " Values('" & [Liste].Cells(i, 1) & "'," & _
"'" & [Liste].Cells(i, 2) & "'," & _
[Liste].Cells(i, 3) & "," & _
"#" & Format([Liste].Cells(i, 4), "mm/dd/yy") & "#," & _
"'" & [Liste].Cells(i, 5) & "')"
'MsgBox Sql
Cnn.Execute Sql
Next i
Cnn.Close
Set Cnn = Nothing
End Sub

http://cjoint.com/?fqvUZJDjEh

JB



"CBR" 464b5bb8$0$32303$

Bonjour à tous

Petit problème que je n'arrive pas à résoudre. (Bon c'est vrai, j'ai
cherché, sans plus, zig....)
A savoir, comment transférer des données récupérées sur une feuille Excel
d'un classeur ouvert
vers une feuille d'un autre classeur sans ouvrir ce dernier et à la suite
d'entrées précédentes ????

Ceci à l'aide d'une macro bien sur, située dans le classeur ouvert.
(A moins que !!! La macro ne soit pas nécessaire ???? )

Merci de votre aide

CBR



CBR
Le #4509121
Merci cousinhub et JB de votre aide (si rapide)
je vais voir ce que je peux faire avec çà.

Bonsoir

CBR
cousinhub
Le #4509101
Bonsoir, JB
J'ai essayé, mais, plouf
MSG d'erreur :

Erreur d'exécution '-2147217865 (80040e37)':

Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
'BDDestination'. Assurez-vous que l'objet existe et que vous avez
correctement saisi son nom et son chemin d'accès.

Si je modifie le code Excel 8.0 par Excel 11.0, autre msg d'erreur :

Erreur d'exécution '-2147467259 (80004005)':

Pilote ISAM introuvable

Une référence manquante?

bonne soirée


Bonsoir,

Nom Prenom Age DateNaissance Ville
TERRIEUR ALAIN 22 01/02/1975 CAEN
SUPER MAN 23 21/03/1974 LILLE
HYPER MEDIA 33 03/12/1980 REIMS
QUINT CHARLES 44 18/03/1982 TOURS


Sub ajout()
ChDir ActiveWorkbook.Path
Set Cnn = New ADODB.Connection
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source­ODestination.XLS;Extended Properties=Excel 8.0;"
For i = 1 To [BDorigine].Rows.Count - 1
Sql = "INSERT INTO BDDestination (Nom,Prenom,age,DateNaissance,Ville)" _
& " Values('" & [Liste].Cells(i, 1) & "'," & _
"'" & [Liste].Cells(i, 2) & "'," & _
[Liste].Cells(i, 3) & "," & _
"#" & Format([Liste].Cells(i, 4), "mm/dd/yy") & "#," & _
"'" & [Liste].Cells(i, 5) & "')"
'MsgBox Sql
Cnn.Execute Sql
Next i
Cnn.Close
Set Cnn = Nothing
End Sub

http://cjoint.com/?fqvUZJDjEh

JB



"CBR" 464b5bb8$0$32303$
Bonjour à tous

Petit problème que je n'arrive pas à résoudre. (Bon c'est vrai, j'ai
cherché, sans plus, zig....)
A savoir, comment transférer des données récupérées sur une feuille Excel
d'un classeur ouvert
vers une feuille d'un autre classeur sans ouvrir ce dernier et à la suite
d'entrées précédentes ????

Ceci à l'aide d'une macro bien sur, située dans le classeur ouvert.
(A moins que !!! La macro ne soit pas nécessaire ???? )

Merci de votre aide

CBR







CBR
Le #4509071
ReBonsoir

ouais! pas aussi simple que çà de mettre en oeuvre vos 2 idées.

Celle de cousinhub simple mais incomplète et celle de JB sauvegarde
un champ complet .

Quelques précisions sur ce que je veux faire:

Classeur A (ouvert dans c:) , valeurs de 10 cellules non cotes à cotes
récupérées sous forme " set Val1 = App..... cells (x,y)"
Ces 10 valeurs sont à transférer dans:
Classeur B (fermé dans d:) , onglet XXX, cellules "Ax" ; "Bx"; etc ( x=ligne
vide à rechercher à chaque sauvegarde)

Il faut que la macro recopie ces données dans une feuille XXX de ce classeur
B et dans des cellules Ax précises.
A la limite on peut envisager d'ouvrir ce classeur B et de sauvegarder et
fermer par la suite , si cela peut simplifier
les choses, comme le fait la soluce de cousinhub.
Je suppose également que cette macro que l'on va élaborer devra être définie
comme public et non privé pour
qu'elle puisse fonctionner sur le classeur B ? Non? Idem pour les variables
Val1....... ?

A vous relire

Bsoir
CBR


"CBR" 464b5bb8$0$32303$

Bonjour à tous

Petit problème que je n'arrive pas à résoudre. (Bon c'est vrai, j'ai
cherché, sans plus, zig....)
A savoir, comment transférer des données récupérées sur une feuille Excel
d'un classeur ouvert
vers une feuille d'un autre classeur sans ouvrir ce dernier et à la suite
d'entrées précédentes ????

Ceci à l'aide d'une macro bien sur, située dans le classeur ouvert.
(A moins que !!! La macro ne soit pas nécessaire ???? )

Merci de votre aide

CBR



JB
Le #4509031
Bonjour CousinHub,

-Il faut cocher Microsoft Activex Data Object 2.8 dans Outils/
Références
-Les fichiers ADOOrigine.xls et ADODestination.xls oivent être dans le
même répertoire.

http://boisgontierjacques.free.fr/fichiers/ADOAjout.zip

Cordialement JB

On 16 mai, 22:26, cousinhub
Bonsoir, JB
J'ai essayé, mais, plouf
MSG d'erreur :

Erreur d'exécution '-2147217865 (80040e37)':

Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet
'BDDestination'. Assurez-vous que l'objet existe et que vous avez
correctement saisi son nom et son chemin d'accès.

Si je modifie le code Excel 8.0 par Excel 11.0, autre msg d'erreur :

Erreur d'exécution '-2147467259 (80004005)':

Pilote ISAM introuvable

Une référence manquante?

bonne soirée




Bonsoir,

Nom Prenom Age DateNaissance Ville
TERRIEUR ALAIN 22 01/02/1975 CAEN
SUPER MAN 23 21/03/1974 LILLE
HYPER MEDIA 33 03/12/1980 REIMS
QUINT CHARLES 44 18/03/1982 TOURS

Sub ajout()
ChDir ActiveWorkbook.Path
Set Cnn = New ADODB.Connection
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source­ODestination.XLS;Extended Properties=Excel 8.0;"
For i = 1 To [BDorigine].Rows.Count - 1
Sql = "INSERT INTO BDDestination (Nom,Prenom,age,DateNaissance,Vi lle)" _
& " Values('" & [Liste].Cells(i, 1) & "'," & _
"'" & [Liste].Cells(i, 2) & "'," & _
[Liste].Cells(i, 3) & "," & _
"#" & Format([Liste].Cells(i, 4), "mm/dd/yy") & "#," & _
"'" & [Liste].Cells(i, 5) & "')"
'MsgBox Sql
Cnn.Execute Sql
Next i
Cnn.Close
Set Cnn = Nothing
End Sub

http://cjoint.com/?fqvUZJDjEh

JB

"CBR" 464b5bb8$0$32303$
Bonjour à tous

Petit problème que je n'arrive pas à résoudre. (Bon c'est vrai, j'ai
cherché, sans plus, zig....)
A savoir, comment transférer des données récupérées sur une feuille Excel
d'un classeur ouvert
vers une feuille d'un autre classeur sans ouvrir ce dernier et à la suite
d'entrées précédentes ????

Ceci à l'aide d'une macro bien sur, située dans le classeur ouvert.
(A moins que !!! La macro ne soit pas nécessaire ???? )

Merci de votre aide

CBR- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -




JB
Le #4509011
Bonjour,


Les cellules B2,B3,... du classeur A sont sauvegardées dans une BD
située dans un autre fichier (classeur B)

Sub sauvegardeFiche()
Application.ScreenUpdating = False
wSource = ThisWorkbook.Name
sSource = ActiveSheet.Name
rep = ThisWorkbook.Path
Workbooks.Open Filename:=rep & "" & "BDBase.xls"
Sheets("BD").Select
[A65000].End(xlUp).Offset(1, 0) = Workbooks(wSource).Sheets(sSource).
[B2]
[A65000].End(xlUp).Offset(0, 1) = Workbooks(wSource).Sheets(sSource).
[B3]
[A65000].End(xlUp).Offset(0, 2) = Workbooks(wSource).Sheets(sSource).
[B4]
[A65000].End(xlUp).Offset(0, 3) = Workbooks(wSource).Sheets(sSource).
[B5]
ActiveWorkbook.Save
ActiveWorkbook.Close
[B2:B5].ClearContents
End Sub

http://boisgontierjacques.free.fr/fichiers/Cellules/BDAjoutFiche.zip

Cordialement JB


On 16 mai, 23:29, "CBR"
ReBonsoir

ouais! pas aussi simple que çà de mettre en oeuvre vos 2 idées.

Celle de cousinhub simple mais incomplète et celle de JB sauvegarde
un champ complet .

Quelques précisions sur ce que je veux faire:

Classeur A (ouvert dans c:) , valeurs de 10 cellules non cotes à cotes
récupérées sous forme " set Val1 = App..... cells (x,y)"
Ces 10 valeurs sont à transférer dans:
Classeur B (fermé dans d:) , onglet XXX, cellules "Ax" ; "Bx"; etc ( x =ligne
vide à rechercher à chaque sauvegarde)

Il faut que la macro recopie ces données dans une feuille XXX de ce cla sseur
B et dans des cellules Ax précises.
A la limite on peut envisager d'ouvrir ce classeur B et de sauvegarder et
fermer par la suite , si cela peut simplifier
les choses, comme le fait la soluce de cousinhub.
Je suppose également que cette macro que l'on va élaborer devra êtr e définie
comme public et non privé pour
qu'elle puisse fonctionner sur le classeur B ? Non? Idem pour les variabl es
Val1....... ?

A vous relire

Bsoir
CBR

"CBR" 464b5bb8$0$32303$





Bonjour à tous

Petit problème que je n'arrive pas à résoudre. (Bon c'est vrai, j 'ai
cherché, sans plus, zig....)
A savoir, comment transférer des données récupérées sur une f euille Excel
d'un classeur ouvert
vers une feuille d'un autre classeur sans ouvrir ce dernier et à la s uite
d'entrées précédentes ????

Ceci à l'aide d'une macro bien sur, située dans le classeur ouvert.
(A moins que !!! La macro ne soit pas nécessaire ???? )

Merci de votre aide

CBR- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



CBR
Le #4509001
"JB"
Bonjour,


Les cellules B2,B3,... du classeur A sont sauvegardées dans une BD
située dans un autre fichier (classeur B)
OK , merci JB pour cette nvelle solution
Je vais tacher de l'adapter à mes classeurs

Bonne journée

CBR

_______________________________________________________________

Sub sauvegardeFiche()
Application.ScreenUpdating = False
wSource = ThisWorkbook.Name
sSource = ActiveSheet.Name
rep = ThisWorkbook.Path
Workbooks.Open Filename:=rep & "" & "BDBase.xls"
Sheets("BD").Select
[A65000].End(xlUp).Offset(1, 0) = Workbooks(wSource).Sheets(sSource).
[B2]
[A65000].End(xlUp).Offset(0, 1) = Workbooks(wSource).Sheets(sSource).
[B3]
[A65000].End(xlUp).Offset(0, 2) = Workbooks(wSource).Sheets(sSource).
[B4]
[A65000].End(xlUp).Offset(0, 3) = Workbooks(wSource).Sheets(sSource).
[B5]
ActiveWorkbook.Save
ActiveWorkbook.Close
[B2:B5].ClearContents
End Sub

http://boisgontierjacques.free.fr/fichiers/Cellules/BDAjoutFiche.zip

Cordialement JB
michel_bzs
Le #4508871
Bonjour,

Avec la démo de Jacques

Dans outils-références de l'éditeur VBA , tu dois cocher la référ ence
"Microsoft ActiveX data Object 2.x library"

x dépend de ta version Win-Excel.

laisse le 8:0

Enfin, pour ma part, j'aurai déclaré cnn
cnn as ADODB.connection

Voili, voilou

Michel
CBR
Le #4508861
Hello JB

J'ais adapté la solution ci dessous à mon classeur et çà fonctionne.
Un seul point noir, la mise en forme de cellules destinées à recevoir des
dates.
Que dois-je rajouter à cette macro pour avoir automatiquement le bon format
de date et non pas une date sous forme de chiffre "39212"
Une des cellules de réception doit être sous format jj/mm/aa et une autre
sous format jjjj ?
Cela ne concerne bien sur que 2 cellules sur la 10zéne que je transfère.

merci de ton aide
CBR
______________________________________________________________

Sub sauvegardeFiche()
Application.ScreenUpdating = False
wSource = ThisWorkbook.Name
sSource = ActiveSheet.Name
rep = ThisWorkbook.Path
Workbooks.Open Filename:=rep & "" & "BDBase.xls"
Sheets("BD").Select
[A65000].End(xlUp).Offset(1, 0) = Workbooks(wSource).Sheets(sSource).
[B2]
[A65000].End(xlUp).Offset(0, 1) = Workbooks(wSource).Sheets(sSource).
[B3]
[A65000].End(xlUp).Offset(0, 2) = Workbooks(wSource).Sheets(sSource).
[B4]
[A65000].End(xlUp).Offset(0, 3) = Workbooks(wSource).Sheets(sSource).
[B5]
ActiveWorkbook.Save
ActiveWorkbook.Close
[B2:B5].ClearContents
End Sub

http://boisgontierjacques.free.fr/fichiers/Cellules/BDAjoutFiche.zip

Cordialement JB






Publicité
Poster une réponse
Anonyme