Bonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition sur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ext;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble des
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je veux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bouton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
Bonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition sur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ext;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble des
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je veux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bouton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
Bonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition sur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ext;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble des
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je veux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bouton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
Bonsoir,
pour lire les données uniquement des classeurs fermés je transporte l es
données uniquement sur un nouveau classeur sans ouvrir les fichiers en
utilisant les liens ADO
"Exemple de fichier à récupérer sur une feuil sans l'ouvir.
QueryWorksheet "C:TRESORERIEVirbanc.xls", "VB"
Public Sub QueryWorksheet(NomFichier$, Feuille$)
'Rob Bovey, mpep
'nécessite une référence à la librairie
'Microsoft ActiveX Data Object 2.x Library 'important dans outil réfé rences
Application.ScreenUpdating = False
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
''' Crée la chaîne de connexion
szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & NomFichier & ";" & _
"Extended Properties=Excel 8.0;"
' La requête est basée sur le nom de la feuille. Ce nom
' doit se terminer par un $ et doit être entouré de crochets droi ts.
' Adapter ce nom à vos besoins
szSQL = "SELECT * FROM [" & Feuille & "$];"
Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
''' Vérifie qu'on a bien reçu des données
If Not rsData.EOF Then
Feuil3.Range("A1").CopyFromRecordset rsData
Else
MsgBox "Aucun enregistrement renvoyé.", vbCritical
End If
''' On nettoie pour finir...
rsData.Close
Set rsData = Nothing
'======================= ========================= ========
'copie et colle les données de recupado
end sub
si tu veux d'autres explications ...n'hésitent pas.
A+
FM
Bonsoir,
pour lire les données uniquement des classeurs fermés je transporte l es
données uniquement sur un nouveau classeur sans ouvrir les fichiers en
utilisant les liens ADO
"Exemple de fichier à récupérer sur une feuil sans l'ouvir.
QueryWorksheet "C:TRESORERIEVirbanc.xls", "VB"
Public Sub QueryWorksheet(NomFichier$, Feuille$)
'Rob Bovey, mpep
'nécessite une référence à la librairie
'Microsoft ActiveX Data Object 2.x Library 'important dans outil réfé rences
Application.ScreenUpdating = False
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
''' Crée la chaîne de connexion
szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & NomFichier & ";" & _
"Extended Properties=Excel 8.0;"
' La requête est basée sur le nom de la feuille. Ce nom
' doit se terminer par un $ et doit être entouré de crochets droi ts.
' Adapter ce nom à vos besoins
szSQL = "SELECT * FROM [" & Feuille & "$];"
Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
''' Vérifie qu'on a bien reçu des données
If Not rsData.EOF Then
Feuil3.Range("A1").CopyFromRecordset rsData
Else
MsgBox "Aucun enregistrement renvoyé.", vbCritical
End If
''' On nettoie pour finir...
rsData.Close
Set rsData = Nothing
'======================= ========================= ========
'copie et colle les données de recupado
end sub
si tu veux d'autres explications ...n'hésitent pas.
A+
FM
Bonsoir,
pour lire les données uniquement des classeurs fermés je transporte l es
données uniquement sur un nouveau classeur sans ouvrir les fichiers en
utilisant les liens ADO
"Exemple de fichier à récupérer sur une feuil sans l'ouvir.
QueryWorksheet "C:TRESORERIEVirbanc.xls", "VB"
Public Sub QueryWorksheet(NomFichier$, Feuille$)
'Rob Bovey, mpep
'nécessite une référence à la librairie
'Microsoft ActiveX Data Object 2.x Library 'important dans outil réfé rences
Application.ScreenUpdating = False
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
''' Crée la chaîne de connexion
szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & NomFichier & ";" & _
"Extended Properties=Excel 8.0;"
' La requête est basée sur le nom de la feuille. Ce nom
' doit se terminer par un $ et doit être entouré de crochets droi ts.
' Adapter ce nom à vos besoins
szSQL = "SELECT * FROM [" & Feuille & "$];"
Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
''' Vérifie qu'on a bien reçu des données
If Not rsData.EOF Then
Feuil3.Range("A1").CopyFromRecordset rsData
Else
MsgBox "Aucun enregistrement renvoyé.", vbCritical
End If
''' On nettoie pour finir...
rsData.Close
Set rsData = Nothing
'======================= ========================= ========
'copie et colle les données de recupado
end sub
si tu veux d'autres explications ...n'hésitent pas.
A+
FM
Bonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition sur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ext;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble des
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je veux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bouton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
Bonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition sur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ext;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble des
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je veux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bouton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
Bonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition sur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ext;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble des
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je veux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bouton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
Bonjour,
Sub LitClasseurFermé()
ChDir ActiveWorkbook.Path
ChampOuCopier = "C2:C3"
Chemin = ActiveWorkbook.Path
Fichier = "stock.xls"
onglet = "Janvier"
ChampAlire = "B2:B3"
LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).Formula = "='" & Chemin & "[" & Fichier & "]"
& onglet & "'!" & ChampAlire
Range(ChampOuCopier).Value = Range(ChampOuCopier).Value
End Sub
Avec ADO: Si la référence a bien été cochée dans le classeur, e lle
est transportée avec celui ci sur les autres postes
.
Alimentation d'une liste déroulante dans un UserForm avec ADO:
-sans liste intermédiaire
-sans trier la liste initiale
Private Sub UserForm_Initialize()
' dans Outils/Références cocher
' Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQOExcel.2XLS"
Set rs = cnn.Execute("SELECT service FROM MaListe GROUP BY Service")
Do While Not rs.EOF
Me.Choix.AddItem rs("Service")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
Cordialement JBBonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition sur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ext;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble des
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je ve ux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bouton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
Bonjour,
Sub LitClasseurFermé()
ChDir ActiveWorkbook.Path
ChampOuCopier = "C2:C3"
Chemin = ActiveWorkbook.Path
Fichier = "stock.xls"
onglet = "Janvier"
ChampAlire = "B2:B3"
LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).Formula = "='" & Chemin & "[" & Fichier & "]"
& onglet & "'!" & ChampAlire
Range(ChampOuCopier).Value = Range(ChampOuCopier).Value
End Sub
Avec ADO: Si la référence a bien été cochée dans le classeur, e lle
est transportée avec celui ci sur les autres postes
.
Alimentation d'une liste déroulante dans un UserForm avec ADO:
-sans liste intermédiaire
-sans trier la liste initiale
Private Sub UserForm_Initialize()
' dans Outils/Références cocher
' Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=ADOExcel.2XLS"
Set rs = cnn.Execute("SELECT service FROM MaListe GROUP BY Service")
Do While Not rs.EOF
Me.Choix.AddItem rs("Service")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
Cordialement JB
Bonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition sur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ext;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble des
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je ve ux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bouton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
Bonjour,
Sub LitClasseurFermé()
ChDir ActiveWorkbook.Path
ChampOuCopier = "C2:C3"
Chemin = ActiveWorkbook.Path
Fichier = "stock.xls"
onglet = "Janvier"
ChampAlire = "B2:B3"
LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).Formula = "='" & Chemin & "[" & Fichier & "]"
& onglet & "'!" & ChampAlire
Range(ChampOuCopier).Value = Range(ChampOuCopier).Value
End Sub
Avec ADO: Si la référence a bien été cochée dans le classeur, e lle
est transportée avec celui ci sur les autres postes
.
Alimentation d'une liste déroulante dans un UserForm avec ADO:
-sans liste intermédiaire
-sans trier la liste initiale
Private Sub UserForm_Initialize()
' dans Outils/Références cocher
' Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQOExcel.2XLS"
Set rs = cnn.Execute("SELECT service FROM MaListe GROUP BY Service")
Do While Not rs.EOF
Me.Choix.AddItem rs("Service")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
Cordialement JBBonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition sur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ext;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble des
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je ve ux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bouton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
bonjour JB
effectivement je connais la procédure LitClasseurFermé ou une de ses
variante, mais le problème comme je l'ai dit précédemment c'est que
je ne peux pas définit la variable onglet car je ne connais pas le nom
de l'onglet que je vais lire d'autant plus que je cherche à parcourir
tous les onglets de tous mes classeurs, sans ouvrir le classeur
pour essayer de comprendre comment fonctionne la procédure avec ADO,
j'ai voulu l'executer sur mon classeur et me donner une idée du
résultat
j'ai bien coché l'activedata comme tu me l'avais demandé
Mais j'obtiens cette erreur :
[Pilote ODBC Excel] Mise à jour impossible. La base de données ou
l'objet est en lecture seule
Aurais-je commis une erreur ? Pourtant j'ai copié collé ton texte !
Private Sub UserForm_Initialize()
' dans Outils/Références cocher
' Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQOExcel.2XLS"
Set rs = cnn.Execute("SELECT service FROM MaListe GROUP BY Service")
Do While Not rs.EOF
UserForm1.ListBox1.AddItem rs("Service")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
CélineBonjour,
Sub LitClasseurFermé()
ChDir ActiveWorkbook.Path
ChampOuCopier = "C2:C3"
Chemin = ActiveWorkbook.Path
Fichier = "stock.xls"
onglet = "Janvier"
ChampAlire = "B2:B3"
LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).Formula = "='" & Chemin & "[" & Fichier & "]"
& onglet & "'!" & ChampAlire
Range(ChampOuCopier).Value = Range(ChampOuCopier).Value
End Sub
Avec ADO: Si la référence a bien été cochée dans le classeur, elle
est transportée avec celui ci sur les autres postes
.
Alimentation d'une liste déroulante dans un UserForm avec ADO:
-sans liste intermédiaire
-sans trier la liste initiale
Private Sub UserForm_Initialize()
' dans Outils/Références cocher
' Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQOExcel.2X LS"
Set rs = cnn.Execute("SELECT service FROM MaListe GROUP BY Service")
Do While Not rs.EOF
Me.Choix.AddItem rs("Service")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
Cordialement JBBonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition s ur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ex t;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble d es
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je veux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bou ton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
bonjour JB
effectivement je connais la procédure LitClasseurFermé ou une de ses
variante, mais le problème comme je l'ai dit précédemment c'est que
je ne peux pas définit la variable onglet car je ne connais pas le nom
de l'onglet que je vais lire d'autant plus que je cherche à parcourir
tous les onglets de tous mes classeurs, sans ouvrir le classeur
pour essayer de comprendre comment fonctionne la procédure avec ADO,
j'ai voulu l'executer sur mon classeur et me donner une idée du
résultat
j'ai bien coché l'activedata comme tu me l'avais demandé
Mais j'obtiens cette erreur :
[Pilote ODBC Excel] Mise à jour impossible. La base de données ou
l'objet est en lecture seule
Aurais-je commis une erreur ? Pourtant j'ai copié collé ton texte !
Private Sub UserForm_Initialize()
' dans Outils/Références cocher
' Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=ADOExcel.2XLS"
Set rs = cnn.Execute("SELECT service FROM MaListe GROUP BY Service")
Do While Not rs.EOF
UserForm1.ListBox1.AddItem rs("Service")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
Céline
Bonjour,
Sub LitClasseurFermé()
ChDir ActiveWorkbook.Path
ChampOuCopier = "C2:C3"
Chemin = ActiveWorkbook.Path
Fichier = "stock.xls"
onglet = "Janvier"
ChampAlire = "B2:B3"
LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).Formula = "='" & Chemin & "[" & Fichier & "]"
& onglet & "'!" & ChampAlire
Range(ChampOuCopier).Value = Range(ChampOuCopier).Value
End Sub
Avec ADO: Si la référence a bien été cochée dans le classeur, elle
est transportée avec celui ci sur les autres postes
.
Alimentation d'une liste déroulante dans un UserForm avec ADO:
-sans liste intermédiaire
-sans trier la liste initiale
Private Sub UserForm_Initialize()
' dans Outils/Références cocher
' Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=ADOExcel.2X LS"
Set rs = cnn.Execute("SELECT service FROM MaListe GROUP BY Service")
Do While Not rs.EOF
Me.Choix.AddItem rs("Service")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
Cordialement JB
Bonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition s ur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ex t;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble d es
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je veux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bou ton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline
bonjour JB
effectivement je connais la procédure LitClasseurFermé ou une de ses
variante, mais le problème comme je l'ai dit précédemment c'est que
je ne peux pas définit la variable onglet car je ne connais pas le nom
de l'onglet que je vais lire d'autant plus que je cherche à parcourir
tous les onglets de tous mes classeurs, sans ouvrir le classeur
pour essayer de comprendre comment fonctionne la procédure avec ADO,
j'ai voulu l'executer sur mon classeur et me donner une idée du
résultat
j'ai bien coché l'activedata comme tu me l'avais demandé
Mais j'obtiens cette erreur :
[Pilote ODBC Excel] Mise à jour impossible. La base de données ou
l'objet est en lecture seule
Aurais-je commis une erreur ? Pourtant j'ai copié collé ton texte !
Private Sub UserForm_Initialize()
' dans Outils/Références cocher
' Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQOExcel.2XLS"
Set rs = cnn.Execute("SELECT service FROM MaListe GROUP BY Service")
Do While Not rs.EOF
UserForm1.ListBox1.AddItem rs("Service")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
CélineBonjour,
Sub LitClasseurFermé()
ChDir ActiveWorkbook.Path
ChampOuCopier = "C2:C3"
Chemin = ActiveWorkbook.Path
Fichier = "stock.xls"
onglet = "Janvier"
ChampAlire = "B2:B3"
LitChamp ChampOuCopier, Chemin, Fichier, onglet, ChampAlire
End Sub
Sub LitChamp(ChampOuCopier, Chemin, Fichier, onglet, ChampAlire)
Range(ChampOuCopier).Formula = "='" & Chemin & "[" & Fichier & "]"
& onglet & "'!" & ChampAlire
Range(ChampOuCopier).Value = Range(ChampOuCopier).Value
End Sub
Avec ADO: Si la référence a bien été cochée dans le classeur, elle
est transportée avec celui ci sur les autres postes
.
Alimentation d'une liste déroulante dans un UserForm avec ADO:
-sans liste intermédiaire
-sans trier la liste initiale
Private Sub UserForm_Initialize()
' dans Outils/Références cocher
' Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQOExcel.2X LS"
Set rs = cnn.Execute("SELECT service FROM MaListe GROUP BY Service")
Do While Not rs.EOF
Me.Choix.AddItem rs("Service")
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
Cordialement JBBonsoir, bonjour, bonn'nuit à tous
(dépend d'ou le message est lu et à quelle heure il arrivera sur le
forum)
J'ai un peu parcouru ce joyeux forum sur le sujet de la lecture de
classeurs fermés, ainsi que les suggestions mises à dipsosition s ur
Excelabo (par Misange si je ne m'abuse) et notamment la fonction
récup.
Ce qu'il en est sorti en gros c'est que soit on passe par Indirect.ex t;
soit par .Open
L'ennui de ces deux méthodes me posent problème pour les raisons
suivantes :
-INDIRECT.EXT hormis le fait qu'il faut être extrmt rigoureux sur le
chemin 'accès, les noms, les appostrophes etc; il semble que cela ne
permet de pointer qu'une cellule préalablement définie
Or, evidemment, pour faire simple, il me faut parcrourir l'ensemble d es
onglets de mes classeurs (nombre indeterminé) et en fonction de ce que
je trouve écrit en C1, je récupère ou non les cellules D4 & D5
- .Open résoudrait ces problèmes car je pourrais faire ce que je veux
de mon classeur une fois ouvert
Or mes classeurs ont bien sur une Macro Before_Open, qui m'affiche un
userform avec menu déroulant, et dont le choix (validé par le bou ton
ok) me conditionne l'ouverture du fichier
Résultat : Lorsque j'ouvre via une macro j'ai mon userform qui
s'affiche et du coup ma macro est suspendue jusqu'à validation
manuelle de mon userform....
Aaarrg.
quelqu'un peut-il me dire si il y a une solution à mon prblème ou si
fo que j'arrête de m'inventer des trucs de ouf malade
Merci beaucou
céline