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
=INDIRECT.EXT(Référence ;Volatile;Style;Mode) les arguments (Volatile, Style et Mode) sont facultatif en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic sur fx, puis sélectionne "Aide sur cette fonction"
est ce que cette fonction demande des elements en sup....
non,
=INDIRECT.EXT(Référence ;Volatile;Style;Mode)
les arguments (Volatile, Style et Mode) sont facultatif
en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic
sur fx, puis sélectionne "Aide sur cette fonction"
=INDIRECT.EXT(Référence ;Volatile;Style;Mode) les arguments (Volatile, Style et Mode) sont facultatif en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic sur fx, puis sélectionne "Aide sur cette fonction"
est ce que cette fonction demande des elements en sup....
MichD
Une dernière correction : Je n'avais pas prévu le cas où il y a des "apostrophes" dans le nom de la feuille. L'apostrophe en SQL devient DOUBLE. Exemple L'auto -> devient L''auto et cela cause problème...
Cette fonction tient compte aussi de cette possibilité dans le nom de l'onglet des feuilles : '--------------------------------------- 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
NomFeuille = Replace(NomFeuille, "'", "", 1) 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(Replace(Replace(Nom, "''", "", 1), "$", "", 1)) End If Debug.Print Nom & " , " & UCase(NomFeuille) If Nom = UCase(NomFeuille) Then IsFeuilleExist = True Exit For End If Next Set cat = Nothing cnn.Close Set cnn = Nothing End Function '---------------------------------------
Je pense que c'est complet jusqu'à la prochaine oubli! ;-)
Une dernière correction : Je n'avais pas prévu le cas où il y a des "apostrophes"
dans le nom de la feuille. L'apostrophe en SQL devient DOUBLE.
Exemple L'auto -> devient L''auto et cela cause problème...
Cette fonction tient compte aussi de cette possibilité dans le nom de l'onglet des feuilles :
'---------------------------------------
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
NomFeuille = Replace(NomFeuille, "'", "", 1)
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(Replace(Replace(Nom, "''", "", 1), "$", "", 1))
End If
Debug.Print Nom & " , " & UCase(NomFeuille)
If Nom = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'---------------------------------------
Je pense que c'est complet jusqu'à la prochaine oubli!
;-)
Une dernière correction : Je n'avais pas prévu le cas où il y a des "apostrophes" dans le nom de la feuille. L'apostrophe en SQL devient DOUBLE. Exemple L'auto -> devient L''auto et cela cause problème...
Cette fonction tient compte aussi de cette possibilité dans le nom de l'onglet des feuilles : '--------------------------------------- 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
NomFeuille = Replace(NomFeuille, "'", "", 1) 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(Replace(Replace(Nom, "''", "", 1), "$", "", 1)) End If Debug.Print Nom & " , " & UCase(NomFeuille) If Nom = UCase(NomFeuille) Then IsFeuilleExist = True Exit For End If Next Set cat = Nothing cnn.Close Set cnn = Nothing End Function '---------------------------------------
Je pense que c'est complet jusqu'à la prochaine oubli! ;-)
Et une dernière après ce serait de l'acharnement !!!
Si le nom de l'onglet a une virgule dans son nom, c'est l'équivalent d'avoir un espace dans le nom de l'onglet...
Si le nom de l'onglet a un point d'exclamation, il est transformé en "_"
Cette dernière intègre ces cas particuliers... et j'arrête de chercher des puces...
'------------------------------------- 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
NomFeuille = Replace(Replace(NomFeuille, "'", "", 1), "!", "_") 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(Replace(Replace(Replace(Nom, "''", "", 1), _ "$", "", 1), "'", "", 1)) End If Debug.Print Nom & " , " & UCase(NomFeuille) If Nom = UCase(NomFeuille) Then IsFeuilleExist = True Exit For End If Next Set cat = Nothing cnn.Close Set cnn = Nothing End Function '-------------------------------------
Et une dernière après ce serait de l'acharnement !!!
Si le nom de l'onglet a une virgule dans son nom, c'est l'équivalent
d'avoir un espace dans le nom de l'onglet...
Si le nom de l'onglet a un point d'exclamation, il est transformé en "_"
Cette dernière intègre ces cas particuliers... et j'arrête de chercher des puces...
'-------------------------------------
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
NomFeuille = Replace(Replace(NomFeuille, "'", "", 1), "!", "_")
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(Replace(Replace(Replace(Nom, "''", "", 1), _
"$", "", 1), "'", "", 1))
End If
Debug.Print Nom & " , " & UCase(NomFeuille)
If Nom = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
Et une dernière après ce serait de l'acharnement !!!
Si le nom de l'onglet a une virgule dans son nom, c'est l'équivalent d'avoir un espace dans le nom de l'onglet...
Si le nom de l'onglet a un point d'exclamation, il est transformé en "_"
Cette dernière intègre ces cas particuliers... et j'arrête de chercher des puces...
'------------------------------------- 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
NomFeuille = Replace(Replace(NomFeuille, "'", "", 1), "!", "_") 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(Replace(Replace(Replace(Nom, "''", "", 1), _ "$", "", 1), "'", "", 1)) End If Debug.Print Nom & " , " & UCase(NomFeuille) If Nom = UCase(NomFeuille) Then IsFeuilleExist = True Exit For End If Next Set cat = Nothing cnn.Close Set cnn = Nothing End Function '-------------------------------------
désolé pour le retard, panne internet Bonsoir, J'y suis allé dans l'aide, mais je n'ai rien vu qui puissais m'aider. En tout cas, merci bcp
Manu
"isabelle" a écrit dans le message de news: ind13r$7d0$
non,
=INDIRECT.EXT(Référence ;Volatile;Style;Mode) les arguments (Volatile, Style et Mode) sont facultatif en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic sur fx, puis sélectionne "Aide sur cette fonction"
est ce que cette fonction demande des elements en sup....
désolé pour le retard, panne internet
Bonsoir,
J'y suis allé dans l'aide, mais je n'ai rien vu qui puissais m'aider. En
tout cas, merci bcp
Manu
"isabelle" <i@v.org> a écrit dans le message de news:
ind13r$7d0$1@speranza.aioe.org...
non,
=INDIRECT.EXT(Référence ;Volatile;Style;Mode)
les arguments (Volatile, Style et Mode) sont facultatif
en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic
sur fx, puis sélectionne "Aide sur cette fonction"
désolé pour le retard, panne internet Bonsoir, J'y suis allé dans l'aide, mais je n'ai rien vu qui puissais m'aider. En tout cas, merci bcp
Manu
"isabelle" a écrit dans le message de news: ind13r$7d0$
non,
=INDIRECT.EXT(Référence ;Volatile;Style;Mode) les arguments (Volatile, Style et Mode) sont facultatif en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic sur fx, puis sélectionne "Aide sur cette fonction"
est ce que cette fonction demande des elements en sup....
MANU
Bonsoir, désolé pour le retard, panne internet. Cest ce que l'on appelle etre perfectionniste ! Merci encore Mich Manu
"MichD" a écrit dans le message de news: ind88j$qcd$
Et une dernière après ce serait de l'acharnement !!!
Si le nom de l'onglet a une virgule dans son nom, c'est l'équivalent d'avoir un espace dans le nom de l'onglet...
Si le nom de l'onglet a un point d'exclamation, il est transformé en "_"
Cette dernière intègre ces cas particuliers... et j'arrête de chercher des puces...
'------------------------------------- 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
NomFeuille = Replace(Replace(NomFeuille, "'", "", 1), "!", "_") 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(Replace(Replace(Replace(Nom, "''", "", 1), _ "$", "", 1), "'", "", 1)) End If Debug.Print Nom & " , " & UCase(NomFeuille) If Nom = UCase(NomFeuille) Then IsFeuilleExist = True Exit For End If Next Set cat = Nothing cnn.Close Set cnn = Nothing End Function '-------------------------------------
Bonsoir,
désolé pour le retard, panne internet. Cest ce que l'on appelle etre
perfectionniste !
Merci encore Mich
Manu
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
ind88j$qcd$1@speranza.aioe.org...
Et une dernière après ce serait de l'acharnement !!!
Si le nom de l'onglet a une virgule dans son nom, c'est l'équivalent
d'avoir un espace dans le nom de l'onglet...
Si le nom de l'onglet a un point d'exclamation, il est transformé en "_"
Cette dernière intègre ces cas particuliers... et j'arrête de chercher des
puces...
'-------------------------------------
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
NomFeuille = Replace(Replace(NomFeuille, "'", "", 1), "!", "_")
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(Replace(Replace(Replace(Nom, "''", "", 1), _
"$", "", 1), "'", "", 1))
End If
Debug.Print Nom & " , " & UCase(NomFeuille)
If Nom = UCase(NomFeuille) Then
IsFeuilleExist = True
Exit For
End If
Next
Set cat = Nothing
cnn.Close
Set cnn = Nothing
End Function
'-------------------------------------
Bonsoir, désolé pour le retard, panne internet. Cest ce que l'on appelle etre perfectionniste ! Merci encore Mich Manu
"MichD" a écrit dans le message de news: ind88j$qcd$
Et une dernière après ce serait de l'acharnement !!!
Si le nom de l'onglet a une virgule dans son nom, c'est l'équivalent d'avoir un espace dans le nom de l'onglet...
Si le nom de l'onglet a un point d'exclamation, il est transformé en "_"
Cette dernière intègre ces cas particuliers... et j'arrête de chercher des puces...
'------------------------------------- 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
NomFeuille = Replace(Replace(NomFeuille, "'", "", 1), "!", "_") 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(Replace(Replace(Replace(Nom, "''", "", 1), _ "$", "", 1), "'", "", 1)) End If Debug.Print Nom & " , " & UCase(NomFeuille) If Nom = UCase(NomFeuille) Then IsFeuilleExist = True Exit For End If Next Set cat = Nothing cnn.Close Set cnn = Nothing End Function '-------------------------------------
as-tu mis le chemin complet, syntaxe à utiliser est : "'Lecteur:Répertoire[NomClasseur.xls]NomFeuille'!C15". Ne pas oublier les apostrophes au début de l'adresse et à la fin du nom de la feuille.
désolé pour le retard, panne internet Bonsoir, J'y suis allé dans l'aide, mais je n'ai rien vu qui puissais m'aider. En tout cas, merci bcp
Manu
"isabelle" a écrit dans le message de news: ind13r$7d0$
non,
=INDIRECT.EXT(Référence ;Volatile;Style;Mode) les arguments (Volatile, Style et Mode) sont facultatif en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic sur fx, puis sélectionne "Aide sur cette fonction"
est ce que cette fonction demande des elements en sup....
bonjour Manu,
as-tu mis le chemin complet,
syntaxe à utiliser est :
"'Lecteur:Répertoire[NomClasseur.xls]NomFeuille'!C15".
Ne pas oublier les apostrophes au début de l'adresse et à la fin du nom
de la feuille.
désolé pour le retard, panne internet
Bonsoir,
J'y suis allé dans l'aide, mais je n'ai rien vu qui puissais m'aider. En
tout cas, merci bcp
Manu
"isabelle"<i@v.org> a écrit dans le message de news:
ind13r$7d0$1@speranza.aioe.org...
non,
=INDIRECT.EXT(Référence ;Volatile;Style;Mode)
les arguments (Volatile, Style et Mode) sont facultatif
en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic
sur fx, puis sélectionne "Aide sur cette fonction"
as-tu mis le chemin complet, syntaxe à utiliser est : "'Lecteur:Répertoire[NomClasseur.xls]NomFeuille'!C15". Ne pas oublier les apostrophes au début de l'adresse et à la fin du nom de la feuille.
désolé pour le retard, panne internet Bonsoir, J'y suis allé dans l'aide, mais je n'ai rien vu qui puissais m'aider. En tout cas, merci bcp
Manu
"isabelle" a écrit dans le message de news: ind13r$7d0$
non,
=INDIRECT.EXT(Référence ;Volatile;Style;Mode) les arguments (Volatile, Style et Mode) sont facultatif en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic sur fx, puis sélectionne "Aide sur cette fonction"
est ce que cette fonction demande des elements en sup....
MANU
Je verifie Isabelle, et te tiens au courant, mais je ne pense pas avoir fais d'erreur, j'ai verifié à fond, mais sait on jamais....
Merci encore pour ta disponibilité Isabelle
Ce qui est epatant, ce sont les connaissances que vous avez pu acquerir sur ce logiciel, toi, Mich et tous les autres qui contribues aux reponses d'autruis ! Vous prenez plaisir à rendre service, et je dis BRAVO !!!
Manu
"isabelle" a écrit dans le message de news: ing57g$jk0$
bonjour Manu,
as-tu mis le chemin complet, syntaxe à utiliser est : "'Lecteur:Répertoire[NomClasseur.xls]NomFeuille'!C15". Ne pas oublier les apostrophes au début de l'adresse et à la fin du nom de la feuille.
désolé pour le retard, panne internet Bonsoir, J'y suis allé dans l'aide, mais je n'ai rien vu qui puissais m'aider. En tout cas, merci bcp
Manu
"isabelle" a écrit dans le message de news: ind13r$7d0$
non,
=INDIRECT.EXT(Référence ;Volatile;Style;Mode) les arguments (Volatile, Style et Mode) sont facultatif en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic sur fx, puis sélectionne "Aide sur cette fonction"
est ce que cette fonction demande des elements en sup....
Je verifie Isabelle, et te tiens au courant, mais je ne pense pas avoir fais
d'erreur, j'ai verifié à fond, mais sait on jamais....
Merci encore pour ta disponibilité Isabelle
Ce qui est epatant, ce sont les connaissances que vous avez pu acquerir sur
ce logiciel, toi, Mich et tous les autres qui contribues aux reponses
d'autruis ! Vous prenez plaisir à rendre service, et je dis BRAVO !!!
Manu
"isabelle" <i@v.org> a écrit dans le message de news:
ing57g$jk0$1@speranza.aioe.org...
bonjour Manu,
as-tu mis le chemin complet,
syntaxe à utiliser est :
"'Lecteur:Répertoire[NomClasseur.xls]NomFeuille'!C15".
Ne pas oublier les apostrophes au début de l'adresse et à la fin du nom de
la feuille.
désolé pour le retard, panne internet
Bonsoir,
J'y suis allé dans l'aide, mais je n'ai rien vu qui puissais m'aider. En
tout cas, merci bcp
Manu
"isabelle"<i@v.org> a écrit dans le message de news:
ind13r$7d0$1@speranza.aioe.org...
non,
=INDIRECT.EXT(Référence ;Volatile;Style;Mode)
les arguments (Volatile, Style et Mode) sont facultatif
en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic
sur fx, puis sélectionne "Aide sur cette fonction"
Je verifie Isabelle, et te tiens au courant, mais je ne pense pas avoir fais d'erreur, j'ai verifié à fond, mais sait on jamais....
Merci encore pour ta disponibilité Isabelle
Ce qui est epatant, ce sont les connaissances que vous avez pu acquerir sur ce logiciel, toi, Mich et tous les autres qui contribues aux reponses d'autruis ! Vous prenez plaisir à rendre service, et je dis BRAVO !!!
Manu
"isabelle" a écrit dans le message de news: ing57g$jk0$
bonjour Manu,
as-tu mis le chemin complet, syntaxe à utiliser est : "'Lecteur:Répertoire[NomClasseur.xls]NomFeuille'!C15". Ne pas oublier les apostrophes au début de l'adresse et à la fin du nom de la feuille.
désolé pour le retard, panne internet Bonsoir, J'y suis allé dans l'aide, mais je n'ai rien vu qui puissais m'aider. En tout cas, merci bcp
Manu
"isabelle" a écrit dans le message de news: ind13r$7d0$
non,
=INDIRECT.EXT(Référence ;Volatile;Style;Mode) les arguments (Volatile, Style et Mode) sont facultatif en mode édition de la formulle, mets le curseur sur INDIRECT.EXT et clic sur fx, puis sélectionne "Aide sur cette fonction"