Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" a écrit dans le message de news:
inci0c$kui$OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" a écrit dans le message de news:
inca2f$1nj$Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$ba4acef3@reader.news.orange.fr...
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inci0c$kui$1@speranza.aioe.org...
OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$ba4acef3@reader.news.orange.fr...
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inca2f$1nj$1@speranza.aioe.org...
Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$ba4acef3@reader.news.orange.fr...
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" a écrit dans le message de news:
inci0c$kui$OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" a écrit dans le message de news:
inca2f$1nj$Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" a écrit dans le message de news:
inci0c$kui$OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" a écrit dans le message de news:
inca2f$1nj$Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$ba4acef3@reader.news.orange.fr...
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inci0c$kui$1@speranza.aioe.org...
OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$ba4acef3@reader.news.orange.fr...
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inca2f$1nj$1@speranza.aioe.org...
Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$ba4acef3@reader.news.orange.fr...
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" a écrit dans le message de news:
inci0c$kui$OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" a écrit dans le message de news:
inca2f$1nj$Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
Effectivement, ca fonctionne nickel à condition que les 2 fichiers soient
ouverts, j'ai tenté dans la formule d'y ajouter le chemin et de fermer le
fichier source, mais ca ne colle pas ! dommage et pourtant ca devrais
fonctionner tel qu'une recherchev
Effectivement, ca fonctionne nickel à condition que les 2 fichiers soient
ouverts, j'ai tenté dans la formule d'y ajouter le chemin et de fermer le
fichier source, mais ca ne colle pas ! dommage et pourtant ca devrais
fonctionner tel qu'une recherchev
Effectivement, ca fonctionne nickel à condition que les 2 fichiers soient
ouverts, j'ai tenté dans la formule d'y ajouter le chemin et de fermer le
fichier source, mais ca ne colle pas ! dommage et pourtant ca devrais
fonctionner tel qu'une recherchev
J'avais modifié le nom de la fonction pour la tester pour
la différencier de l'autre avec DAO. et j'avais oublié de
modifier cette ligne de code : IsFeuilleExist = True
Attention au nom des références à cocher, la fonction était
ancienne et il y a des versions plus récentes. J'ai mis à jour
leur appellation, celle qui devrait être cochée.
'-------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d8f9$0$7688$
J'ai installé, puis cocher Microsoft Data Access component, mais rien de
changer, j'ai tjrs FAUX.
Merci pour tout ces efforts Mich
Manu
"MichD" a écrit dans le message de news:
inckcb$r29$Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" a écrit dans le message de news:
inci0c$kui$OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" a écrit dans le message de news:
inca2f$1nj$Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille
est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je
suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je
devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
J'avais modifié le nom de la fonction pour la tester pour
la différencier de l'autre avec DAO. et j'avais oublié de
modifier cette ligne de code : IsFeuilleExist = True
Attention au nom des références à cocher, la fonction était
ancienne et il y a des versions plus récentes. J'ai mis à jour
leur appellation, celle qui devrait être cochée.
'-------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d8f9$0$7688$ba4acef3@reader.news.orange.fr...
J'ai installé, puis cocher Microsoft Data Access component, mais rien de
changer, j'ai tjrs FAUX.
Merci pour tout ces efforts Mich
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inckcb$r29$1@speranza.aioe.org...
Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$ba4acef3@reader.news.orange.fr...
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inci0c$kui$1@speranza.aioe.org...
OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$ba4acef3@reader.news.orange.fr...
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inca2f$1nj$1@speranza.aioe.org...
Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille
est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$ba4acef3@reader.news.orange.fr...
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je
suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je
devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
J'avais modifié le nom de la fonction pour la tester pour
la différencier de l'autre avec DAO. et j'avais oublié de
modifier cette ligne de code : IsFeuilleExist = True
Attention au nom des références à cocher, la fonction était
ancienne et il y a des versions plus récentes. J'ai mis à jour
leur appellation, celle qui devrait être cochée.
'-------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d8f9$0$7688$
J'ai installé, puis cocher Microsoft Data Access component, mais rien de
changer, j'ai tjrs FAUX.
Merci pour tout ces efforts Mich
Manu
"MichD" a écrit dans le message de news:
inckcb$r29$Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" a écrit dans le message de news:
inci0c$kui$OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" a écrit dans le message de news:
inca2f$1nj$Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille
est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je
suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je
devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
dans le cas ou le fichier est fermer, tu pourrais utiliser INDIRECT.EXT
de morefunc
http://xcell05.free.fr/morefunc/french/
isabelle
------------------------------------------------------------------
Le 2011-04-04 10:33, Manu a écrit :Effectivement, ca fonctionne nickel à condition que les 2 fichiers soient
ouverts, j'ai tenté dans la formule d'y ajouter le chemin et de fermer le
fichier source, mais ca ne colle pas ! dommage et pourtant ca devrais
fonctionner tel qu'une recherchev
dans le cas ou le fichier est fermer, tu pourrais utiliser INDIRECT.EXT
de morefunc
http://xcell05.free.fr/morefunc/french/
isabelle
------------------------------------------------------------------
Le 2011-04-04 10:33, Manu a écrit :
Effectivement, ca fonctionne nickel à condition que les 2 fichiers soient
ouverts, j'ai tenté dans la formule d'y ajouter le chemin et de fermer le
fichier source, mais ca ne colle pas ! dommage et pourtant ca devrais
fonctionner tel qu'une recherchev
dans le cas ou le fichier est fermer, tu pourrais utiliser INDIRECT.EXT
de morefunc
http://xcell05.free.fr/morefunc/french/
isabelle
------------------------------------------------------------------
Le 2011-04-04 10:33, Manu a écrit :Effectivement, ca fonctionne nickel à condition que les 2 fichiers soient
ouverts, j'ai tenté dans la formule d'y ajouter le chemin et de fermer le
fichier source, mais ca ne colle pas ! dommage et pourtant ca devrais
fonctionner tel qu'une recherchev
Ce serait nickel, mais impossible de le telecharger
Ce serait nickel, mais impossible de le telecharger
Ce serait nickel, mais impossible de le telecharger
J'avais modifié le nom de la fonction pour la tester pour
la différencier de l'autre avec DAO. et j'avais oublié de
modifier cette ligne de code : IsFeuilleExist = True
Attention au nom des références à cocher, la fonction était
ancienne et il y a des versions plus récentes. J'ai mis à jour
leur appellation, celle qui devrait être cochée.
'-------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d8f9$0$7688$
J'ai installé, puis cocher Microsoft Data Access component, mais rien de
changer, j'ai tjrs FAUX.
Merci pour tout ces efforts Mich
Manu
"MichD" a écrit dans le message de news:
inckcb$r29$Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" a écrit dans le message de news:
inci0c$kui$OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" a écrit dans le message de news:
inca2f$1nj$Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille
est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je
suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je
devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
J'avais modifié le nom de la fonction pour la tester pour
la différencier de l'autre avec DAO. et j'avais oublié de
modifier cette ligne de code : IsFeuilleExist = True
Attention au nom des références à cocher, la fonction était
ancienne et il y a des versions plus récentes. J'ai mis à jour
leur appellation, celle qui devrait être cochée.
'-------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d8f9$0$7688$ba4acef3@reader.news.orange.fr...
J'ai installé, puis cocher Microsoft Data Access component, mais rien de
changer, j'ai tjrs FAUX.
Merci pour tout ces efforts Mich
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inckcb$r29$1@speranza.aioe.org...
Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$ba4acef3@reader.news.orange.fr...
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inci0c$kui$1@speranza.aioe.org...
OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$ba4acef3@reader.news.orange.fr...
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inca2f$1nj$1@speranza.aioe.org...
Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille
est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$ba4acef3@reader.news.orange.fr...
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je
suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je
devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
J'avais modifié le nom de la fonction pour la tester pour
la différencier de l'autre avec DAO. et j'avais oublié de
modifier cette ligne de code : IsFeuilleExist = True
Attention au nom des références à cocher, la fonction était
ancienne et il y a des versions plus récentes. J'ai mis à jour
leur appellation, celle qui devrait être cochée.
'-------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d8f9$0$7688$
J'ai installé, puis cocher Microsoft Data Access component, mais rien de
changer, j'ai tjrs FAUX.
Merci pour tout ces efforts Mich
Manu
"MichD" a écrit dans le message de news:
inckcb$r29$Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" a écrit dans le message de news:
inci0c$kui$OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007 et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" a écrit dans le message de news:
inca2f$1nj$Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille
est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je
suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je
devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
Quand le nom de la feuille possède un espace dans le nom de l'onglet
on lui ajoute des " ' " autour de son nom pour le délimiter. Il faut
adapter la procédure pour cette syntaxe :
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Trim(Tbl.Name)
If InStr(1, Trim(Tbl.Name), " ", vbTextCompare) > 0 Then
Nom = UCase(Replace(Replace(Nom, "'", "", 1), "$", "", 1))
Else
Nom = UCase(Left(Nom, Len(Nom) - 1))
End If
If Nom = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99e75b$0$32460$
Alors, maintenant ca fonctionne mais à condition que le nom de feuil ne
possede pas d'espace, etonnant
Manu
"MichD" a écrit dans le message de news:
incm5c$vku$J'avais modifié le nom de la fonction pour la tester pour
la différencier de l'autre avec DAO. et j'avais oublié de
modifier cette ligne de code : IsFeuilleExist = True
Attention au nom des références à cocher, la fonction était
ancienne et il y a des versions plus récentes. J'ai mis à jour
leur appellation, celle qui devrait être cochée.
'-------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d8f9$0$7688$
J'ai installé, puis cocher Microsoft Data Access component, mais rien de
changer, j'ai tjrs FAUX.
Merci pour tout ces efforts Mich
Manu
"MichD" a écrit dans le message de news:
inckcb$r29$Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" a écrit dans le message de news:
inci0c$kui$OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007
et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai
changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" a écrit dans le message de news:
inca2f$1nj$Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille
est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier
la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je
suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je
devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
Quand le nom de la feuille possède un espace dans le nom de l'onglet
on lui ajoute des " ' " autour de son nom pour le délimiter. Il faut
adapter la procédure pour cette syntaxe :
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Trim(Tbl.Name)
If InStr(1, Trim(Tbl.Name), " ", vbTextCompare) > 0 Then
Nom = UCase(Replace(Replace(Nom, "'", "", 1), "$", "", 1))
Else
Nom = UCase(Left(Nom, Len(Nom) - 1))
End If
If Nom = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99e75b$0$32460$ba4acef3@reader.news.orange.fr...
Alors, maintenant ca fonctionne mais à condition que le nom de feuil ne
possede pas d'espace, etonnant
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
incm5c$vku$1@speranza.aioe.org...
J'avais modifié le nom de la fonction pour la tester pour
la différencier de l'autre avec DAO. et j'avais oublié de
modifier cette ligne de code : IsFeuilleExist = True
Attention au nom des références à cocher, la fonction était
ancienne et il y a des versions plus récentes. J'ai mis à jour
leur appellation, celle qui devrait être cochée.
'-------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d8f9$0$7688$ba4acef3@reader.news.orange.fr...
J'ai installé, puis cocher Microsoft Data Access component, mais rien de
changer, j'ai tjrs FAUX.
Merci pour tout ces efforts Mich
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inckcb$r29$1@speranza.aioe.org...
Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$ba4acef3@reader.news.orange.fr...
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inci0c$kui$1@speranza.aioe.org...
OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007
et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$ba4acef3@reader.news.orange.fr...
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai
changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
inca2f$1nj$1@speranza.aioe.org...
Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille
est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier
la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$ba4acef3@reader.news.orange.fr...
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je
suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je
devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
Quand le nom de la feuille possède un espace dans le nom de l'onglet
on lui ajoute des " ' " autour de son nom pour le délimiter. Il faut
adapter la procédure pour cette syntaxe :
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Trim(Tbl.Name)
If InStr(1, Trim(Tbl.Name), " ", vbTextCompare) > 0 Then
Nom = UCase(Replace(Replace(Nom, "'", "", 1), "$", "", 1))
Else
Nom = UCase(Left(Nom, Len(Nom) - 1))
End If
If Nom = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99e75b$0$32460$
Alors, maintenant ca fonctionne mais à condition que le nom de feuil ne
possede pas d'espace, etonnant
Manu
"MichD" a écrit dans le message de news:
incm5c$vku$J'avais modifié le nom de la fonction pour la tester pour
la différencier de l'autre avec DAO. et j'avais oublié de
modifier cette ligne de code : IsFeuilleExist = True
Attention au nom des références à cocher, la fonction était
ancienne et il y a des versions plus récentes. J'ai mis à jour
leur appellation, celle qui devrait être cochée.
'-------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.8 Library"
'"Microsoft ADO Ext. 6.0 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d8f9$0$7688$
J'ai installé, puis cocher Microsoft Data Access component, mais rien de
changer, j'ai tjrs FAUX.
Merci pour tout ces efforts Mich
Manu
"MichD" a écrit dans le message de news:
inckcb$r29$Tu peux télécharger MDAC 2.8 de plusieurs sites internet en faisant une
recherche sur Google : voici une des adresses. Il ne reste plus qu'à
l'installer.
MDAC = "Microsoft Data Access component"
http://www.zdnet.fr/telecharger/logiciel/microsoft-data-access-components-mdac-39072327s.htm
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99d2bb$0$7714$
Ca ne fonctionne tjrs pas, il me met tjrs faux, est ce parce que je n'ai
pas
ceci :'"Microsoft ADO Ext. 2.1 for DDL and Security " j'ai donc cocher
cela
: '"Microsoft ADO Ext. 2.8 for DDL and Security "
Manu
"MichD" a écrit dans le message de news:
inci0c$kui$OK, j'avais testé pour un classeur .xls (antérieure aux versions 2007
et
2010)
Utilise cette fonction et coches les 2 références énumérées au début de
la
fonction.
Fonctionne indépendamment de la version du fichier Excel.
'--------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'"Microsoft ActiveX Data Objects 2.1 Library"
'"Microsoft ADO Ext. 2.1 for DDL and Security "."
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim Tbl As ADOX.Table, Nom As String
cnn.Open "Provider=MSDASQL.1;Data Source=" _
& "Excel Files;Initial Catalog=" & Fichier
cat.ActiveConnection = cnn
For Each Tbl In cat.Tables
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist1 = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'--------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d99c560$0$7683$
Bonjour Mich,
Apres divers tests ca ne fonctionne pas, mais ca doit etre de ma faute
car
je n'ai pas precisé que je suis sur 2007 et donc.xlsx ce que j'ai
changé
dans la formule mais je suppose qu'ici il faut modifier...
OpenDatabase(Fichier, False, True, "Excel 8.0;")
Merci
Manu
"MichD" a écrit dans le message de news:
inca2f$1nj$Bonjour,
Tu peux utiliser une fonction personnalisée.
Dans un module standard, tu copies ceci :
Cette fonction requiert la bibliothèque (référence) suivante :
Microsoft DAO 3.6 objects library . Pour ajouter cette référence
dans la fenêtre de l'éditeur de code, barre des menus / outils /
références / et tu coches la référence indiquée.
Dans une cellule, pour appeler la fonction, tu insères la formule
suivante
:
=IsFeuilleExist("Feuil1";"c:Classeur1.xls")
La fonction retourne Vrai si la feuille existe et Faux si la feuille
est
absente
Feuil1 => est le nom de l'onglet de la feuille dont tu veux vérifier
la
présence
dans le classeur1.xls
c:Classeur1.xls => est le chemin et le nom du fichier Excel.
'--------------------------------------------
Function IsFeuilleExist(NomFeuille As String, _
Fichier As String) As Boolean
'Microsoft DAO 3.6 objects library
Dim xlWB As DAO.Database
Dim Tbl As DAO.TableDef
Dim Nom
IsFeuilleExist = False
Set xlWB = OpenDatabase(Fichier, False, True, "Excel 8.0;")
For Each Tbl In xlWB.TableDefs
Nom = Tbl.Name
If UCase(Left(Nom, Len(Nom) - 1)) = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
xlWB.Close
End Function
'--------------------------------------------
MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4d998d1d$0$7693$
Bonjour,
Es til possible de faire des recherchev d'un fichier à un autre mais à
condition que les feuil de chaque fichier soit identique, je donne un
exemple
Fichier Toto.xls avec 3 feuil ; aa, bb, cc
Sur Feuil bb, j'ai :
Col A Col B
C1 21
C2 3
C3 12
Fichier Zaza.xls avec 4 feuil ; bb, uu, zz, aa
Je fais la formule dans la feuil bb cellule B1
Col A Col B
C3
C7
C1
Je souhaite qu'il trouve dans le fichier toto.xls si la feuil ou je
suis
(bb) existe et si c'est le cas, qu'il me fasse ma recherchev, je
devrais
donc trouver ici : en B1 : 12
J'essai avec cela,
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
mais
je ne vois pas comment tester le nom de feuil d'un autre fichier
Merci
Manu
ou ici,
http://www.commentcamarche.net/download/telecharger-34056283-morefunc-macro-complementaire-excel
isabelle
------------------------------------------------------------------
ou ici,
http://www.commentcamarche.net/download/telecharger-34056283-morefunc-macro-complementaire-excel
isabelle
------------------------------------------------------------------
ou ici,
http://www.commentcamarche.net/download/telecharger-34056283-morefunc-macro-complementaire-excel
isabelle
------------------------------------------------------------------