Ecrire dans classeur fermé partagé excel 2007
Résolu/Fermé
zeguedoua
Messages postés
2
Date d'inscription
jeudi 22 septembre 2011
Statut
Membre
Dernière intervention
23 septembre 2011
-
22 sept. 2011 à 13:56
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 juil. 2013 à 11:48
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 juil. 2013 à 11:48
A voir également:
- Ecrire dans classeur fermé partagé excel 2007
- Liste déroulante excel - Guide
- Partage photo - Guide
- Formule excel - Guide
- Ecrire en gras sur whatsapp - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
5 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
22 sept. 2011 à 14:12
22 sept. 2011 à 14:12
Bonjour,
Pour lire et écrire dans un classeur fermé grâce à excel, voir ce tutoriel
Pour lire et écrire dans un classeur fermé grâce à excel, voir ce tutoriel
zeguedoua
Messages postés
2
Date d'inscription
jeudi 22 septembre 2011
Statut
Membre
Dernière intervention
23 septembre 2011
23 sept. 2011 à 13:52
23 sept. 2011 à 13:52
Merci pijaku
J'ai adapté le code comme suit :
Mais je n'arrive pas à modifier la cellule D2. Le message "Erreur 3021" BOF ou EOF est égal à True s'affiche. La commande Rst(0).Value = "Donnée test" est sélectionnée au debbogage. Au passage quel est le role des différents variables (en particulier Rst et Rst(0)) ?
Merci et à bientot
zeguedoua
J'ai adapté le code comme suit :
Sub ExportDonneeDansCelluleClasseurFerme() Dim Cn As ADODB.Connection Dim Cd As ADODB.Command Dim Rst As ADODB.Recordset Dim Fichier As String Fichier = "e:\ClasseurFermé.xlsx" Set Cn = New ADODB.Connection '--- Connection --- With Cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;""" .Open End With Set Cd = New ADODB.Command Cd.ActiveConnection = Cn Cd.CommandText = "SELECT * FROM [Liste$D2:D2]" Set Rst = New ADODB.Recordset Rst.Open Cd, , adOpenKeyset, adLockOptimistic Rst(0).Value = "Donnée test" Rst.Update Cn.Close Set Cn = Nothing Set Cd = Nothing Set Rst = Nothing End Sub
Mais je n'arrive pas à modifier la cellule D2. Le message "Erreur 3021" BOF ou EOF est égal à True s'affiche. La commande Rst(0).Value = "Donnée test" est sélectionnée au debbogage. Au passage quel est le role des différents variables (en particulier Rst et Rst(0)) ?
Merci et à bientot
zeguedoua
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
23 sept. 2011 à 14:56
23 sept. 2011 à 14:56
bonjour
macro à adapter (XL2000)
macro à adapter (XL2000)
Sub ecrire_cellule_dans_fermé() 'écrit la valeur de "G2" dans classeur fermé Dim source As Object Dim externe As Object Dim fichier As String, onglet As String, nom_plage As String, texte_SQL As String onglet = "ecrire" 'à adapter ' ouvre la connexion avec la database "source" dans le classeur excel fermé fichier = ActiveWorkbook.Path & "\fermé_ado.xls" ' à adapter Set source = CreateObject("ADODB.Connection") source.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _ "data source=" & fichier & ";" & _ "extended properties=""Excel 8.0;HDR=No;"";" nom_plage = "B2:B2" 'à adapter ' requete SQL de la cellule de destination; "nom_plage" est une "vraie-fausse base _ de données": une étiquette,une ligne texte_SQL = "SELECT * FROM [" & onglet & "$" & nom_plage & "]" Set externe = CreateObject("ADODB.Recordset") externe.Open texte_SQL, source, adOpenKeyset, adLockOptimistic 'externe.MoveFirst externe(0).Value = Range("G2").Value 'a adapter externe.Update externe.Close source.Close Set externe = Nothing Set source = Nothing MsgBox "opération terminée" End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
23 sept. 2011 à 15:01
23 sept. 2011 à 15:01
salut,
Merci Michel_m
A+
Merci Michel_m
A+
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
23 sept. 2011 à 15:04
23 sept. 2011 à 15:04
ci joint un vieil exemple (2004) d'initialisation à l'utilisation de liaison dans fichiers fermés (excel-access)
https://www.cjoint.com/?3IxpbqSPaPc
https://www.cjoint.com/?3IxpbqSPaPc
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
23 sept. 2011 à 15:05
23 sept. 2011 à 15:05
Merci.
J'y jetterais un oeil... quand j'aurais 5 minutes.
A+
J'y jetterais un oeil... quand j'aurais 5 minutes.
A+
Bonsoir michel
Merci pour la procédure qui marche très bien sous excel 2003. Mais dès que je passe à excel 2007, <<la ligne externe(0).Value = Range("G2")>> n'est pas reconnue et un bug se produit. J'ai téléchargé les fichiers joints qui marchent impec sous 2003. Je débute en connexion adodb, alors je n'hésiterai pas à poser souvent des questions.
Merci et A+
zeguedoua
Merci pour la procédure qui marche très bien sous excel 2003. Mais dès que je passe à excel 2007, <<la ligne externe(0).Value = Range("G2")>> n'est pas reconnue et un bug se produit. J'ai téléchargé les fichiers joints qui marchent impec sous 2003. Je débute en connexion adodb, alors je n'hésiterai pas à poser souvent des questions.
Merci et A+
zeguedoua
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
Modifié par michel_m le 27/09/2011 à 09:19
Modifié par michel_m le 27/09/2011 à 09:19
Bonjour
je viens d'essayer c'est OK mais, à ma grande surprise avec XL2007, il faut quand m^me cocher la référence (menu outils-références de VBE) microsoft activeX Data object 2.0
ce "cochage" n'est pas nécessaire avec les versions XL<2007
mystère et boule de gomme...
je viens d'essayer c'est OK mais, à ma grande surprise avec XL2007, il faut quand m^me cocher la référence (menu outils-références de VBE) microsoft activeX Data object 2.0
ce "cochage" n'est pas nécessaire avec les versions XL<2007
mystère et boule de gomme...
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
19 oct. 2011 à 12:26
19 oct. 2011 à 12:26
Bonjour tous,
Ce que tu veux faire n'est pas possible mais rien ne t'empêche d'ouvrir le classeur, de le mettre invisible et de travailler dessus ?
A+
Ce que tu veux faire n'est pas possible mais rien ne t'empêche d'ouvrir le classeur, de le mettre invisible et de travailler dessus ?
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
momouiz
Messages postés
30
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
21 octobre 2013
3
18 juil. 2013 à 11:42
18 juil. 2013 à 11:42
salut tout le monde je me retrouve encore avec une run-time error '3021' avec ce code ci :
Sub spider_graph()
Dim Cn As ADODB.Connection
Dim Cd As ADODB.Command
Dim Rst As ADODB.Recordset
Dim fichier As String
fichier = "C:\Documents and Settings\mslimani060313\Desktop\Tests\Radar spider graph de risque.xlsx"
Set Cn = New ADODB.Connection
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
Set Cd = New ADODB.Command
Cd.ActiveConnection = Cn
Cd.CommandText = " SELECT * FROM [Spider Graph $F43:F43]"
Set Rst = New ADODB.Recordset
Rst.Open Cd, , adOpenKeyset, adLockOptimistic
If Rst.EOF Then
MsgBox "matching data"
Rst(0).Value = "avec bdd tout est possible"
Else
MsgBox "no matching data"
End If
Rst.Update
Cn.Close
Set Cn = Nothing
Set Cd = Nothing
Set Rst = Nothing
End Sub
Private Sub spider_graph_2()
'écrit la valeur de "G2" dans classeur fermé
Dim source As Object
Dim externe As Object
Dim fichier As String, onglet As String, nom_plage As String, texte_SQL As String
onglet = "Spider Graph " 'à adapter
' ouvre la connexion avec la database "source" dans le classeur excel fermé
fichier = "C:\Documents and Settings\mslimani060313\Desktop\Tests\Radar spider graph de risque.xlsx" ' à adapter
Set source = CreateObject("ADODB.Connection")
With source
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
'source.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
' "data source=" & fichier & ";" & _
' "extended properties=""Excel 12.0;HDR=No;"";"
nom_plage = "B2:B2" 'à adapter
' requete SQL de la cellule de destination; "nom_plage" est une "vraie-fausse base _
de données": une étiquette,une ligne
texte_SQL = "SELECT * FROM [" & onglet & "$" & nom_plage & "]"
Set externe = CreateObject("ADODB.Recordset")
externe.Open texte_SQL, source, adOpenKeyset, adLockOptimistic
'externe.MoveFirst
externe(0).Value = Range("G2").Value 'a adapter
externe.Update
externe.Close
source.Close
Set externe = Nothing
Set source = Nothing
MsgBox "opération terminée"
End Sub
quelqu'un pour m'aider s'il vous plait ?
Sub spider_graph()
Dim Cn As ADODB.Connection
Dim Cd As ADODB.Command
Dim Rst As ADODB.Recordset
Dim fichier As String
fichier = "C:\Documents and Settings\mslimani060313\Desktop\Tests\Radar spider graph de risque.xlsx"
Set Cn = New ADODB.Connection
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
Set Cd = New ADODB.Command
Cd.ActiveConnection = Cn
Cd.CommandText = " SELECT * FROM [Spider Graph $F43:F43]"
Set Rst = New ADODB.Recordset
Rst.Open Cd, , adOpenKeyset, adLockOptimistic
If Rst.EOF Then
MsgBox "matching data"
Rst(0).Value = "avec bdd tout est possible"
Else
MsgBox "no matching data"
End If
Rst.Update
Cn.Close
Set Cn = Nothing
Set Cd = Nothing
Set Rst = Nothing
End Sub
Private Sub spider_graph_2()
'écrit la valeur de "G2" dans classeur fermé
Dim source As Object
Dim externe As Object
Dim fichier As String, onglet As String, nom_plage As String, texte_SQL As String
onglet = "Spider Graph " 'à adapter
' ouvre la connexion avec la database "source" dans le classeur excel fermé
fichier = "C:\Documents and Settings\mslimani060313\Desktop\Tests\Radar spider graph de risque.xlsx" ' à adapter
Set source = CreateObject("ADODB.Connection")
With source
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
'source.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
' "data source=" & fichier & ";" & _
' "extended properties=""Excel 12.0;HDR=No;"";"
nom_plage = "B2:B2" 'à adapter
' requete SQL de la cellule de destination; "nom_plage" est une "vraie-fausse base _
de données": une étiquette,une ligne
texte_SQL = "SELECT * FROM [" & onglet & "$" & nom_plage & "]"
Set externe = CreateObject("ADODB.Recordset")
externe.Open texte_SQL, source, adOpenKeyset, adLockOptimistic
'externe.MoveFirst
externe(0).Value = Range("G2").Value 'a adapter
externe.Update
externe.Close
source.Close
Set externe = Nothing
Set source = Nothing
MsgBox "opération terminée"
End Sub
quelqu'un pour m'aider s'il vous plait ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
18 juil. 2013 à 11:48
18 juil. 2013 à 11:48
Bonjour,
Pour que ta demande soit traitée dans les meilleures conditions, je te recommande d'ouvrir un nouveau sujet.
Pour que ta demande soit traitée dans les meilleures conditions, je te recommande d'ouvrir un nouveau sujet.