Mise à jour Classeur sans ouvrir un Deuxième
Bonjour à tous;
je me trouve devant un classeur volumineux qui met du temps à s'ouvrir et à s'actualiser à partir d'une base de donnée, ce dernier met à jour un deuxième classeur, alors est-ce possible de mettre à jour le classeur N°2 sans ouvrir le premier.
Merci à Tous
Hosni
Bonjour,
Il est possible de le faire, mais avant il vous faudra absolument activer un composant comme suit.
1- Presser les touches ALT + F11
2- Selectionner dans la barre menu Outil
3- Selectionner dans la barre menu Référence
4- Activer selon votre version Excel le composant : Microsoft ActiveX Data Objects [2.0] ou [autre] Library.
Vous trouverez ci-après un exemple de ce qui peut-être fait sur Excel, vous constaterez :
Sub ajoutEnregistrement()
Dim Cn As ADODB.Connection
Dim Fichier As String, Feuille As String, strSQL As String
Dim LaDate As Date
Dim PrixUnit As Integer
Dim leNom As String, lePrenom As String
Fichier = "C:\Base.xls"
Feuille = "Feuil1"
'Les données à insérer:
LaDate = CDate("26/05/2006")
leNom = "NomTest"
lePrenom = "PrenomTest"
PrixUnit = 40
Set Cn = New ADODB.Connection
With Cn
.Provider = "MSDASQL"
.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & Fichier & "; ReadOnly=False;"
.Open
End With
'Les données doivent être indiquées dans le même ordre que les champs dans la base de données.
strSQL = "INSERT INTO [" & Feuille & "$] " _
& "VALUES (#" & LaDate & "#, " & _
"'" & leNom & "', " & _
"'" & lePrenom & "', " & _
PrixUnit & ")"
Cn.Execute strSQL
Cn.Close
Set Cn = Nothing
End Sub
Le modèle ADO permet aussi d'écrire dans une cellule spécifique:
La macro suivante insère un texte dans la cellule G30 du classeur fermé.
Vba
Sub exportDonneeDansCelluleClasseurFerme()
Si cela répond à votre question parfait, dans le cas contraire merci de bien vouloir joindre un fichier ainsi une solution plus appropriée vous sera alors proposée pour résoudre votre léger soucis.
Cdt
Air_2
Bonjour à Tous;
Salut à Toi Air_2; Merci pour ta réponse, que je viens de consulter, en fait pour ta réponse d'après ce que j'ai compris c'est l'ajout de données d'un classeur vers un autre, seulement pour mon cas c'est juste une actualisation de données, ces dernières se trouvent dans un classeur de base et le deuxième classeur puise ces données afin de leur faire subir un traitement sans les changer. Alors est-il possible de faire des recherches (RECHERCHEV) dans le classeur de Base sans l'ouvrir?
NB/ Pour la pièce jointe, les fichiers sont volumineux et ne passent pas, j’essaierai de faire autrement.
Merci à Plus
Hosni
Bonsoir Hosni,
Désolé j'ai confondu, tu trouveras la fonction native d'excel :
=RECHERCHEV("DVP";'C:\Documents and
Settings\mimi\dossier\excel\[ClasseurBase.xls]Feuil1'!$A:$B;2;FAUX) ' l'apostrophe devant le Cet les crochets sont à respecter
Si tu avais des problèmes la formule décomposée :
=RECHERCHEV("DVP"; _
Apostrophe importante -------------------------------------> ' C:\Documents andSettings\mimi\dossier\excel\ _
crochets importants ------------------------------------------------> [ClasseurBase.xls] _
si 3ieme feuille alors (Feuil3 ' ) avec l'apostrophe -----> Feuil1 ' ! $A:$B _ dollars importants
----------------------------------------------------------------------------> ;2;FAUX)
Encore désolé
Air_2
Bonjour le Forum
Salut à Toi Air; merci pour ta préoccupation, je prend en compte ta réponse que je viens de lire et je la met en application, je te donnerai réponse après.
Merci encore et à bientôt
Hosni