Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lire un fichier Excel sans l'ouvrir ?

9 réponses
Avatar
Joël
Bonjour à toutes et à tous...

Est-il possible, à partir du VBA, d'aller lire le contenu d'un fichier Excel
sans l'ouvrir en mémoire ?

Vous remerciant de vos réponses (nombreuses ?)

;-)))
--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr

9 réponses

Avatar
lSteph
Bonjour,
Est-il possible
si, si!

à partir du VBA
m^m pô besoin:

='C:Documents and SettingsJoëlMes documents[toto.xls]Feuil3'!$A$1

Cdlt.

lSteph
Joël a pensé très fort :
Bonjour à toutes et à tous...

Est-il possible, à partir du VBA, d'aller lire le contenu d'un fichier Excel
sans l'ouvrir en mémoire ?

Vous remerciant de vos réponses (nombreuses ?)

;-)))


--
- -

Avatar
Joël
Ben voyons, je m'en vais m'empresser de tester cela, qui me paraît très
intéressant !

Merci lSteph !!! Bon Week-End !

Je suppose que pour écrire, il n'en est pas de même ? ;-) (imaginons que je
veuille supprimer des lignes par exemple ?)
--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"lSteph" a écrit dans le message de news:

Bonjour,
Est-il possible
si, si!

à partir du VBA
m^m pô besoin:

='C:Documents and SettingsJoëlMes documents[toto.xls]Feuil3'!$A$1

Cdlt.

lSteph
Joël a pensé très fort :
Bonjour à toutes et à tous...

Est-il possible, à partir du VBA, d'aller lire le contenu d'un fichier
Excel sans l'ouvrir en mémoire ?

Vous remerciant de vos réponses (nombreuses ?)

;-)))


--
- -





Avatar
Joël
Je vois ce que tu veux dire,

Mais je VEUX absolument le faire à partir de VBA (en fait, à partir d'une
application ACCESS pour tout dire..)

Mais merci quand même lSteph !

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"lSteph" a écrit dans le message de news:

Bonjour,
Est-il possible
si, si!

à partir du VBA
m^m pô besoin:

='C:Documents and SettingsJoëlMes documents[toto.xls]Feuil3'!$A$1

Cdlt.

lSteph
Joël a pensé très fort :
Bonjour à toutes et à tous...

Est-il possible, à partir du VBA, d'aller lire le contenu d'un fichier
Excel sans l'ouvrir en mémoire ?

Vous remerciant de vos réponses (nombreuses ?)

;-)))


--
- -





Avatar
JB
Bonsoir,

En utilisant ADO:

BDliste est un champ nommé (BD avec les titres)

Option Compare Database
Sub essai()
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver
(*.xls)};DBQÊscadeADO2.XLS"
Set rs = cnn.Execute("SELECT Société FROM BDListe GROUP BY
Société")
Do While Not rs.EOF
MsgBox rs!société
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub

Exemple de OLE automation Access-Excel:

Private Sub b_excel_Click()
Dim bd As Database
Dim rs As Recordset
Dim sql As String
Dim rep_appli, i
Dim xl As Object
Set bd = CurrentDb
sql = "SELECT * FROM R_congés WHERE CodeVendeur='" & Me.CodeVendeur
& "' ORDER BY début"
Set rs = bd.OpenRecordset(sql)
'---- OLE automation
Set xl = CreateObject("excel.Application")
On Error Resume Next
xl.Workbooks.Open FileName:=RépertoireAppli() &
"modèle_congés.xls"
If Err <> 0 Then
MsgBox "Installer le modèle Modèle_congés.xls dans le
répertoire de l'appplication!"
Exit Sub
End If
xl.Visible = True
xl.ActiveSheet.Cells(1, 6).Value = Me.NomVendeur
i = 2
Do While Not rs.EOF
xl.ActiveSheet.Cells(i, 1).Value = rs!Début
xl.ActiveSheet.Cells(i, 2).Value = rs!Fin
xl.ActiveSheet.Cells(i, 3).Value = rs!TypeCongés
rs.MoveNext
i = i + 1
Loop
xl.DisplayAlerts = False
xl.ActiveWorkbook.SaveAs RépertoireAppli() & Me.NomVendeur
xl.ActiveWorkbook.Close
xl.Quit

Cordialement JB

Je vois ce que tu veux dire,

Mais je VEUX absolument le faire à partir de VBA (en fait, à partir d 'une
application ACCESS pour tout dire..)

Mais merci quand même lSteph !

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"lSteph" a écrit dans le message de news:

Bonjour,
Est-il possible
si, si!

à partir du VBA
m^m pô besoin:

='C:Documents and SettingsJoëlMes documents[toto.xls]Feuil3'!$A $1

Cdlt.

lSteph
Joël a pensé très fort :
Bonjour à toutes et à tous...

Est-il possible, à partir du VBA, d'aller lire le contenu d'un fichi er
Excel sans l'ouvrir en mémoire ?

Vous remerciant de vos réponses (nombreuses ?)

;-)))


--
- -







Avatar
Joël
Merci JB, je vais étudier la question... durant ce week-end...

Bonne nuit !

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"JB" a écrit dans le message de news:

Bonsoir,

En utilisant ADO:

BDliste est un champ nommé (BD avec les titres)

Option Compare Database
Sub essai()
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver
(*.xls)};DBQÊscadeADO2.XLS"
Set rs = cnn.Execute("SELECT Société FROM BDListe GROUP BY
Société")
Do While Not rs.EOF
MsgBox rs!société
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub

Exemple de OLE automation Access-Excel:

Private Sub b_excel_Click()
Dim bd As Database
Dim rs As Recordset
Dim sql As String
Dim rep_appli, i
Dim xl As Object
Set bd = CurrentDb
sql = "SELECT * FROM R_congés WHERE CodeVendeur='" & Me.CodeVendeur
& "' ORDER BY début"
Set rs = bd.OpenRecordset(sql)
'---- OLE automation
Set xl = CreateObject("excel.Application")
On Error Resume Next
xl.Workbooks.Open FileName:=RépertoireAppli() &
"modèle_congés.xls"
If Err <> 0 Then
MsgBox "Installer le modèle Modèle_congés.xls dans le
répertoire de l'appplication!"
Exit Sub
End If
xl.Visible = True
xl.ActiveSheet.Cells(1, 6).Value = Me.NomVendeur
i = 2
Do While Not rs.EOF
xl.ActiveSheet.Cells(i, 1).Value = rs!Début
xl.ActiveSheet.Cells(i, 2).Value = rs!Fin
xl.ActiveSheet.Cells(i, 3).Value = rs!TypeCongés
rs.MoveNext
i = i + 1
Loop
xl.DisplayAlerts = False
xl.ActiveWorkbook.SaveAs RépertoireAppli() & Me.NomVendeur
xl.ActiveWorkbook.Close
xl.Quit

Cordialement JB

Je vois ce que tu veux dire,

Mais je VEUX absolument le faire à partir de VBA (en fait, à partir d'une
application ACCESS pour tout dire..)

Mais merci quand même lSteph !

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"lSteph" a écrit dans le message de news:

Bonjour,
Est-il possible
si, si!

à partir du VBA
m^m pô besoin:

='C:Documents and SettingsJoëlMes documents[toto.xls]Feuil3'!$A$1

Cdlt.

lSteph
Joël a pensé très fort :
Bonjour à toutes et à tous...

Est-il possible, à partir du VBA, d'aller lire le contenu d'un fichier
Excel sans l'ouvrir en mémoire ?

Vous remerciant de vos réponses (nombreuses ?)

;-)))


--
- -







Avatar
isabelle
bonjour Joël,

autre solution avec ExecuteExcel4Macro pour lire la plage A1:C10,
disponible pour les versions xl95 à xl2003 et peut être xl2007

Sub valeurExterne1()
For Ligne = 1 To 10
For colonne = 1 To 3
onglet = "Feuil1"
Fichier = "zaza1.xls"
rep = "c:zaza"
'il y a la possibilité de modifier "MsgBox par Cells(Ligne, Colonne) MsgBox ExecuteExcel4Macro _
("'" & rep & "[" & Fichier & "]" & onglet & "'!R" & Ligne & "C" & colonne & "")
Next
Next
End Sub

isabelle


Merci JB, je vais étudier la question... durant ce week-end...

Bonne nuit !



Avatar
claudy
Bonjour à vous tous...
petite question : est ce que ces procédés fonctionnent aussi si le fichier
est protégé à l'ouverture?
Merci a+

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

bonjour Joël,

autre solution avec ExecuteExcel4Macro pour lire la plage A1:C10,
disponible pour les versions xl95 à xl2003 et peut être xl2007

Sub valeurExterne1()
For Ligne = 1 To 10
For colonne = 1 To 3
onglet = "Feuil1"
Fichier = "zaza1.xls"
rep = "c:zaza"
'il y a la possibilité de modifier "MsgBox par Cells(Ligne, Colonne) > MsgBox ExecuteExcel4Macro _
("'" & rep & "[" & Fichier & "]" & onglet & "'!R" & Ligne & "C" &
colonne & "")
Next
Next
End Sub

isabelle


Merci JB, je vais étudier la question... durant ce week-end...

Bonne nuit !





Avatar
Joël
Bonjour, et merci à toutes et à tous ! (JB, LSteph, Isabelle et les autres
qui ont réfléchi à la question)

Voilà de quoi passer un bon Week-End !

La question de Claudy est intéressante... Il va falloir tester cela !

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"claudy" a écrit dans le message
de news: 4555776d$0$1131$
Bonjour à vous tous...
petite question : est ce que ces procédés fonctionnent aussi si le fichier
est protégé à l'ouverture?
Merci a+

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

bonjour Joël,

autre solution avec ExecuteExcel4Macro pour lire la plage A1:C10,
disponible pour les versions xl95 à xl2003 et peut être xl2007

Sub valeurExterne1()
For Ligne = 1 To 10
For colonne = 1 To 3
onglet = "Feuil1"
Fichier = "zaza1.xls"
rep = "c:zaza"
'il y a la possibilité de modifier "MsgBox par Cells(Ligne, Colonne) >> MsgBox ExecuteExcel4Macro _
("'" & rep & "[" & Fichier & "]" & onglet & "'!R" & Ligne & "C" &
colonne & "")
Next
Next
End Sub

isabelle


Merci JB, je vais étudier la question... durant ce week-end...

Bonne nuit !









Avatar
Joël
Claudy, après vérification, il faut le mot de passe pour pouvoir lire...

Ce qui, somme toute, est rassurant !

Bon week-end...

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"claudy" a écrit dans le message
de news: 4555776d$0$1131$
Bonjour à vous tous...
petite question : est ce que ces procédés fonctionnent aussi si le fichier
est protégé à l'ouverture?
Merci a+

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

bonjour Joël,

autre solution avec ExecuteExcel4Macro pour lire la plage A1:C10,
disponible pour les versions xl95 à xl2003 et peut être xl2007

Sub valeurExterne1()
For Ligne = 1 To 10
For colonne = 1 To 3
onglet = "Feuil1"
Fichier = "zaza1.xls"
rep = "c:zaza"
'il y a la possibilité de modifier "MsgBox par Cells(Ligne, Colonne) >> MsgBox ExecuteExcel4Macro _
("'" & rep & "[" & Fichier & "]" & onglet & "'!R" & Ligne & "C" &
colonne & "")
Next
Next
End Sub

isabelle


Merci JB, je vais étudier la question... durant ce week-end...

Bonne nuit !