Bonjour à tous,
Je voudrais filtrer sur place les 10000 lignes d'un grand tableau (de A à R
à partir de la ligne 15..)
Les critères sont les suivants, je ne veux voir que les lignes dont la
colonne M contient une valeur (Std) ET la colonne P estvide
Le code que j'ai fais en grande partie avec l'enregistreur fonctionne mais
l'application du filtre est TRES longue (Près de 40 secondes sur un Athlon
1800 !)
La methode utilisée n'est peut-être pas bonne du tout : je fais un test des
lignes sur la colonne Q et ensuite j'applique un filtre en Q12:Q13 pour les
lignes VRAI...
J'ai essayé un filtre auto, c'est aussi long...
Même problème quand je dois tout réafficher... c'est long !
Au secours ! Y a t-il un moyen pour optimiser cela ?
Merci
Domi
Sub Filtre()
'Test
With Range("Q16", Range("A65000").End(xlUp).Offset(0, 16))
.FormulaR1C1 = "=AND(RC[-4]<>"""",ISBLANK(RC[-1]))"
.Value = .Value
End With
'Application du filtre
Range("G15").Activate
Range("R15", Range("A65000").End(xlUp)).AdvancedFilter
Action:=xlFilterInPlace, CriteriaRange:=Range("Q12:Q13"), Unique:=False
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Domi
J'ai trouvé la cause ! J'ai une feuille Stats dont quelques "grosses" formules vont chercher leurs infos dans ma feuille. Si je les vire tout rentre dans l'ordre. Je vais pouvoir me debrouiller... Si mon code pour le filtre peut être amélioré, je reste preneur :o) Merci Domi
"Domi" a écrit dans le message de news:
Bonjour à tous, Je voudrais filtrer sur place les 10000 lignes d'un grand tableau (de A à R
à partir de la ligne 15..) Les critères sont les suivants, je ne veux voir que les lignes dont la colonne M contient une valeur (Std) ET la colonne P estvide Le code que j'ai fais en grande partie avec l'enregistreur fonctionne mais l'application du filtre est TRES longue (Près de 40 secondes sur un Athlon 1800 !) La methode utilisée n'est peut-être pas bonne du tout : je fais un test des
lignes sur la colonne Q et ensuite j'applique un filtre en Q12:Q13 pour les
lignes VRAI... J'ai essayé un filtre auto, c'est aussi long... Même problème quand je dois tout réafficher... c'est long ! Au secours ! Y a t-il un moyen pour optimiser cela ? Merci Domi
Sub Filtre() 'Test With Range("Q16", Range("A65000").End(xlUp).Offset(0, 16)) .FormulaR1C1 = "=AND(RC[-4]<>"""",ISBLANK(RC[-1]))" .Value = .Value End With 'Application du filtre Range("G15").Activate Range("R15", Range("A65000").End(xlUp)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("Q12:Q13"), Unique:úlse End Sub
J'ai trouvé la cause ! J'ai une feuille Stats dont quelques "grosses"
formules vont chercher leurs infos dans ma feuille. Si je les vire tout
rentre dans l'ordre. Je vais pouvoir me debrouiller...
Si mon code pour le filtre peut être amélioré, je reste preneur :o)
Merci
Domi
"Domi" <scrat83@free.fr> a écrit dans le message de news:
en5pXn75DHA.2656@TK2MSFTNGP11.phx.gbl...
Bonjour à tous,
Je voudrais filtrer sur place les 10000 lignes d'un grand tableau (de A à
R
à partir de la ligne 15..)
Les critères sont les suivants, je ne veux voir que les lignes dont la
colonne M contient une valeur (Std) ET la colonne P estvide
Le code que j'ai fais en grande partie avec l'enregistreur fonctionne mais
l'application du filtre est TRES longue (Près de 40 secondes sur un Athlon
1800 !)
La methode utilisée n'est peut-être pas bonne du tout : je fais un test
des
lignes sur la colonne Q et ensuite j'applique un filtre en Q12:Q13 pour
les
lignes VRAI...
J'ai essayé un filtre auto, c'est aussi long...
Même problème quand je dois tout réafficher... c'est long !
Au secours ! Y a t-il un moyen pour optimiser cela ?
Merci
Domi
Sub Filtre()
'Test
With Range("Q16", Range("A65000").End(xlUp).Offset(0, 16))
.FormulaR1C1 = "=AND(RC[-4]<>"""",ISBLANK(RC[-1]))"
.Value = .Value
End With
'Application du filtre
Range("G15").Activate
Range("R15", Range("A65000").End(xlUp)).AdvancedFilter
Action:=xlFilterInPlace, CriteriaRange:=Range("Q12:Q13"), Unique:úlse
End Sub
J'ai trouvé la cause ! J'ai une feuille Stats dont quelques "grosses" formules vont chercher leurs infos dans ma feuille. Si je les vire tout rentre dans l'ordre. Je vais pouvoir me debrouiller... Si mon code pour le filtre peut être amélioré, je reste preneur :o) Merci Domi
"Domi" a écrit dans le message de news:
Bonjour à tous, Je voudrais filtrer sur place les 10000 lignes d'un grand tableau (de A à R
à partir de la ligne 15..) Les critères sont les suivants, je ne veux voir que les lignes dont la colonne M contient une valeur (Std) ET la colonne P estvide Le code que j'ai fais en grande partie avec l'enregistreur fonctionne mais l'application du filtre est TRES longue (Près de 40 secondes sur un Athlon 1800 !) La methode utilisée n'est peut-être pas bonne du tout : je fais un test des
lignes sur la colonne Q et ensuite j'applique un filtre en Q12:Q13 pour les
lignes VRAI... J'ai essayé un filtre auto, c'est aussi long... Même problème quand je dois tout réafficher... c'est long ! Au secours ! Y a t-il un moyen pour optimiser cela ? Merci Domi
Sub Filtre() 'Test With Range("Q16", Range("A65000").End(xlUp).Offset(0, 16)) .FormulaR1C1 = "=AND(RC[-4]<>"""",ISBLANK(RC[-1]))" .Value = .Value End With 'Application du filtre Range("G15").Activate Range("R15", Range("A65000").End(xlUp)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("Q12:Q13"), Unique:úlse End Sub
michdenis
Bonjour Domi,
Tu pourrais peut être essayé ceci :
Tu dois adapter le nom de la feuille selon ton application. La zone de critère du filtre élaboré est en M1:M2 , à adapter selon ton application. Dans la formule, M16 et P16 doivent représenter les cellules de la première ligne des données, celle en dessous de la ligne d'étiquettes de tes champs.
'--------------------------- Sub Filtre()
With Worksheets("Feuil1") 'Zone de critère : M1:M2 .Range("M1") = "" 'Formule utilisée en M2 .Range("M2").FormulaLocal = "=(M16=""Std"")*(estvide(P16))=1" With .Range("A15:R" & .Range("A65356").End(xlUp).Row) .AdvancedFilter Action:=xlFilterInPlace, _ CriteriaRange:=.Range("M1:M2"), Unique:úlse End With End With End Sub '---------------------------
Salutations!
"Domi" a écrit dans le message de news: Bonjour à tous, Je voudrais filtrer sur place les 10000 lignes d'un grand tableau (de A à R à partir de la ligne 15..) Les critères sont les suivants, je ne veux voir que les lignes dont la colonne M contient une valeur (Std) ET la colonne P estvide Le code que j'ai fais en grande partie avec l'enregistreur fonctionne mais l'application du filtre est TRES longue (Près de 40 secondes sur un Athlon 1800 !) La methode utilisée n'est peut-être pas bonne du tout : je fais un test des lignes sur la colonne Q et ensuite j'applique un filtre en Q12:Q13 pour les lignes VRAI... J'ai essayé un filtre auto, c'est aussi long... Même problème quand je dois tout réafficher... c'est long ! Au secours ! Y a t-il un moyen pour optimiser cela ? Merci Domi
Sub Filtre() 'Test With Range("Q16", Range("A65000").End(xlUp).Offset(0, 16)) .FormulaR1C1 = "=AND(RC[-4]<>"""",ISBLANK(RC[-1]))" .Value = .Value End With 'Application du filtre Range("G15").Activate Range("R15", Range("A65000").End(xlUp)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("Q12:Q13"), Unique:úlse End Sub
Bonjour Domi,
Tu pourrais peut être essayé ceci :
Tu dois adapter le nom de la feuille selon ton application.
La zone de critère du filtre élaboré est en M1:M2 , à adapter selon ton application.
Dans la formule, M16 et P16 doivent représenter les cellules de la première ligne des données, celle en dessous de la ligne
d'étiquettes de tes champs.
'---------------------------
Sub Filtre()
With Worksheets("Feuil1")
'Zone de critère : M1:M2
.Range("M1") = ""
'Formule utilisée en M2
.Range("M2").FormulaLocal = "=(M16=""Std"")*(estvide(P16))=1"
With .Range("A15:R" & .Range("A65356").End(xlUp).Row)
.AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=.Range("M1:M2"), Unique:úlse
End With
End With
End Sub
'---------------------------
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de news:en5pXn75DHA.2656@TK2MSFTNGP11.phx.gbl...
Bonjour à tous,
Je voudrais filtrer sur place les 10000 lignes d'un grand tableau (de A à R
à partir de la ligne 15..)
Les critères sont les suivants, je ne veux voir que les lignes dont la
colonne M contient une valeur (Std) ET la colonne P estvide
Le code que j'ai fais en grande partie avec l'enregistreur fonctionne mais
l'application du filtre est TRES longue (Près de 40 secondes sur un Athlon
1800 !)
La methode utilisée n'est peut-être pas bonne du tout : je fais un test des
lignes sur la colonne Q et ensuite j'applique un filtre en Q12:Q13 pour les
lignes VRAI...
J'ai essayé un filtre auto, c'est aussi long...
Même problème quand je dois tout réafficher... c'est long !
Au secours ! Y a t-il un moyen pour optimiser cela ?
Merci
Domi
Sub Filtre()
'Test
With Range("Q16", Range("A65000").End(xlUp).Offset(0, 16))
.FormulaR1C1 = "=AND(RC[-4]<>"""",ISBLANK(RC[-1]))"
.Value = .Value
End With
'Application du filtre
Range("G15").Activate
Range("R15", Range("A65000").End(xlUp)).AdvancedFilter
Action:=xlFilterInPlace, CriteriaRange:=Range("Q12:Q13"), Unique:úlse
End Sub
Tu dois adapter le nom de la feuille selon ton application. La zone de critère du filtre élaboré est en M1:M2 , à adapter selon ton application. Dans la formule, M16 et P16 doivent représenter les cellules de la première ligne des données, celle en dessous de la ligne d'étiquettes de tes champs.
'--------------------------- Sub Filtre()
With Worksheets("Feuil1") 'Zone de critère : M1:M2 .Range("M1") = "" 'Formule utilisée en M2 .Range("M2").FormulaLocal = "=(M16=""Std"")*(estvide(P16))=1" With .Range("A15:R" & .Range("A65356").End(xlUp).Row) .AdvancedFilter Action:=xlFilterInPlace, _ CriteriaRange:=.Range("M1:M2"), Unique:úlse End With End With End Sub '---------------------------
Salutations!
"Domi" a écrit dans le message de news: Bonjour à tous, Je voudrais filtrer sur place les 10000 lignes d'un grand tableau (de A à R à partir de la ligne 15..) Les critères sont les suivants, je ne veux voir que les lignes dont la colonne M contient une valeur (Std) ET la colonne P estvide Le code que j'ai fais en grande partie avec l'enregistreur fonctionne mais l'application du filtre est TRES longue (Près de 40 secondes sur un Athlon 1800 !) La methode utilisée n'est peut-être pas bonne du tout : je fais un test des lignes sur la colonne Q et ensuite j'applique un filtre en Q12:Q13 pour les lignes VRAI... J'ai essayé un filtre auto, c'est aussi long... Même problème quand je dois tout réafficher... c'est long ! Au secours ! Y a t-il un moyen pour optimiser cela ? Merci Domi
Sub Filtre() 'Test With Range("Q16", Range("A65000").End(xlUp).Offset(0, 16)) .FormulaR1C1 = "=AND(RC[-4]<>"""",ISBLANK(RC[-1]))" .Value = .Value End With 'Application du filtre Range("G15").Activate Range("R15", Range("A65000").End(xlUp)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("Q12:Q13"), Unique:úlse End Sub
michdenis
Un petit détail : ceci est suffisant comme formule :
"=(M16=""Std"")*(estvide(P16))" pour le critère.
Salutations!
"michdenis" a écrit dans le message de news: Bonjour Domi,
Tu pourrais peut être essayé ceci :
Tu dois adapter le nom de la feuille selon ton application. La zone de critère du filtre élaboré est en M1:M2 , à adapter selon ton application. Dans la formule, M16 et P16 doivent représenter les cellules de la première ligne des données, celle en dessous de la ligne d'étiquettes de tes champs.
'--------------------------- Sub Filtre()
With Worksheets("Feuil1") 'Zone de critère : M1:M2 .Range("M1") = "" 'Formule utilisée en M2 .Range("M2").FormulaLocal = "=(M16=""Std"")*(estvide(P16))=1" With .Range("A15:R" & .Range("A65356").End(xlUp).Row) .AdvancedFilter Action:=xlFilterInPlace, _ CriteriaRange:=.Range("M1:M2"), Unique:úlse End With End With End Sub '---------------------------
Salutations!
"Domi" a écrit dans le message de news: Bonjour à tous, Je voudrais filtrer sur place les 10000 lignes d'un grand tableau (de A à R à partir de la ligne 15..) Les critères sont les suivants, je ne veux voir que les lignes dont la colonne M contient une valeur (Std) ET la colonne P estvide Le code que j'ai fais en grande partie avec l'enregistreur fonctionne mais l'application du filtre est TRES longue (Près de 40 secondes sur un Athlon 1800 !) La methode utilisée n'est peut-être pas bonne du tout : je fais un test des lignes sur la colonne Q et ensuite j'applique un filtre en Q12:Q13 pour les lignes VRAI... J'ai essayé un filtre auto, c'est aussi long... Même problème quand je dois tout réafficher... c'est long ! Au secours ! Y a t-il un moyen pour optimiser cela ? Merci Domi
Sub Filtre() 'Test With Range("Q16", Range("A65000").End(xlUp).Offset(0, 16)) .FormulaR1C1 = "=AND(RC[-4]<>"""",ISBLANK(RC[-1]))" .Value = .Value End With 'Application du filtre Range("G15").Activate Range("R15", Range("A65000").End(xlUp)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("Q12:Q13"), Unique:úlse End Sub
Un petit détail : ceci est suffisant comme formule :
"=(M16=""Std"")*(estvide(P16))" pour le critère.
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:ONotEEA6DHA.2412@TK2MSFTNGP10.phx.gbl...
Bonjour Domi,
Tu pourrais peut être essayé ceci :
Tu dois adapter le nom de la feuille selon ton application.
La zone de critère du filtre élaboré est en M1:M2 , à adapter selon ton application.
Dans la formule, M16 et P16 doivent représenter les cellules de la première ligne des données, celle en dessous de la ligne
d'étiquettes de tes champs.
'---------------------------
Sub Filtre()
With Worksheets("Feuil1")
'Zone de critère : M1:M2
.Range("M1") = ""
'Formule utilisée en M2
.Range("M2").FormulaLocal = "=(M16=""Std"")*(estvide(P16))=1"
With .Range("A15:R" & .Range("A65356").End(xlUp).Row)
.AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=.Range("M1:M2"), Unique:úlse
End With
End With
End Sub
'---------------------------
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de news:en5pXn75DHA.2656@TK2MSFTNGP11.phx.gbl...
Bonjour à tous,
Je voudrais filtrer sur place les 10000 lignes d'un grand tableau (de A à R
à partir de la ligne 15..)
Les critères sont les suivants, je ne veux voir que les lignes dont la
colonne M contient une valeur (Std) ET la colonne P estvide
Le code que j'ai fais en grande partie avec l'enregistreur fonctionne mais
l'application du filtre est TRES longue (Près de 40 secondes sur un Athlon
1800 !)
La methode utilisée n'est peut-être pas bonne du tout : je fais un test des
lignes sur la colonne Q et ensuite j'applique un filtre en Q12:Q13 pour les
lignes VRAI...
J'ai essayé un filtre auto, c'est aussi long...
Même problème quand je dois tout réafficher... c'est long !
Au secours ! Y a t-il un moyen pour optimiser cela ?
Merci
Domi
Sub Filtre()
'Test
With Range("Q16", Range("A65000").End(xlUp).Offset(0, 16))
.FormulaR1C1 = "=AND(RC[-4]<>"""",ISBLANK(RC[-1]))"
.Value = .Value
End With
'Application du filtre
Range("G15").Activate
Range("R15", Range("A65000").End(xlUp)).AdvancedFilter
Action:=xlFilterInPlace, CriteriaRange:=Range("Q12:Q13"), Unique:úlse
End Sub
Un petit détail : ceci est suffisant comme formule :
"=(M16=""Std"")*(estvide(P16))" pour le critère.
Salutations!
"michdenis" a écrit dans le message de news: Bonjour Domi,
Tu pourrais peut être essayé ceci :
Tu dois adapter le nom de la feuille selon ton application. La zone de critère du filtre élaboré est en M1:M2 , à adapter selon ton application. Dans la formule, M16 et P16 doivent représenter les cellules de la première ligne des données, celle en dessous de la ligne d'étiquettes de tes champs.
'--------------------------- Sub Filtre()
With Worksheets("Feuil1") 'Zone de critère : M1:M2 .Range("M1") = "" 'Formule utilisée en M2 .Range("M2").FormulaLocal = "=(M16=""Std"")*(estvide(P16))=1" With .Range("A15:R" & .Range("A65356").End(xlUp).Row) .AdvancedFilter Action:=xlFilterInPlace, _ CriteriaRange:=.Range("M1:M2"), Unique:úlse End With End With End Sub '---------------------------
Salutations!
"Domi" a écrit dans le message de news: Bonjour à tous, Je voudrais filtrer sur place les 10000 lignes d'un grand tableau (de A à R à partir de la ligne 15..) Les critères sont les suivants, je ne veux voir que les lignes dont la colonne M contient une valeur (Std) ET la colonne P estvide Le code que j'ai fais en grande partie avec l'enregistreur fonctionne mais l'application du filtre est TRES longue (Près de 40 secondes sur un Athlon 1800 !) La methode utilisée n'est peut-être pas bonne du tout : je fais un test des lignes sur la colonne Q et ensuite j'applique un filtre en Q12:Q13 pour les lignes VRAI... J'ai essayé un filtre auto, c'est aussi long... Même problème quand je dois tout réafficher... c'est long ! Au secours ! Y a t-il un moyen pour optimiser cela ? Merci Domi
Sub Filtre() 'Test With Range("Q16", Range("A65000").End(xlUp).Offset(0, 16)) .FormulaR1C1 = "=AND(RC[-4]<>"""",ISBLANK(RC[-1]))" .Value = .Value End With 'Application du filtre Range("G15").Activate Range("R15", Range("A65000").End(xlUp)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("Q12:Q13"), Unique:úlse End Sub
Pierre CFI [mvp]
salut Michel dis moi , ce n'est pas toi qui "aime" bien le travail sur bd en dao ou ado s
-- Pierre CFI
salut Michel
dis moi , ce n'est pas toi qui "aime" bien le travail sur bd en dao ou ado
s
Est-ce que tu veux me dire que tu as un fichier exemple qui démontre que l'emploi d'une requête utilisant DAO ou ADO est plus rapide dans ce cas ?
J'attends le résultat de tes tests !!!
;-))
Salutations!
"Pierre CFI [mvp]" a écrit dans le message de news: salut Michel dis moi , ce n'est pas toi qui "aime" bien le travail sur bd en dao ou ado s
-- Pierre CFI
Bonjour Pierre,
Est-ce que tu veux me dire que tu as un fichier exemple qui démontre que l'emploi d'une requête utilisant DAO ou ADO est plus
rapide dans ce cas ?
J'attends le résultat de tes tests !!!
;-))
Salutations!
"Pierre CFI [mvp]" <XXX_pierresalaun@aol.com> a écrit dans le message de news:OfKt3RA6DHA.1664@TK2MSFTNGP11.phx.gbl...
salut Michel
dis moi , ce n'est pas toi qui "aime" bien le travail sur bd en dao ou ado
s
Cela veut dire qu'il est temps que je change de pseudo, quelques personnes perspicaces m'ont reconnu !!!
;-))
Salutations!
"Daniel.M" a écrit dans le message de news:
salut Michel
Non, non je n'ai pas de nom -Pauline Julien
Daniel M. (qui n'en manque pas une :-) )
Pierre CFI [mvp]
non rien à voir avec la question c'est en cherchant a resoudre un pb de transfert de base excel access et access excel , que j'ai constaté qu'on peut faire entre autre ceci macro dans un fichier excel, qui crée une table (de_excel)dans access depuis une base excel (base_totale) qui est dans un autre fichier excel fermé
Dim bd As DAO.Database
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "SELECT base_totale.* INTO de_excel IN 'd:accessexo access 97client_97.mdb' FROM base_totale IN 'c:legrisservicesdir production.xls'[excel 8.0;];" bd.close
excel en bd gére aussi les Insert into ou Update.... ce qui fait qu'on peut faire un filtre élaboré en sql Mais tu connais peut étre et je fais un bide (le but premier étant de résoudre mon pb, pas d'épater la galerie) -- Pierre CFI
non rien à voir avec la question
c'est en cherchant a resoudre un pb de transfert de base excel access et access excel , que j'ai constaté qu'on peut faire entre
autre ceci
macro dans un fichier excel, qui crée une table (de_excel)dans access depuis une base excel (base_totale) qui est dans un autre
fichier excel fermé
Dim bd As DAO.Database
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "SELECT base_totale.* INTO de_excel IN 'd:accessexo access 97client_97.mdb' FROM base_totale IN
'c:legrisservicesdir production.xls'[excel 8.0;];"
bd.close
excel en bd gére aussi les Insert into ou Update.... ce qui fait qu'on peut faire un filtre élaboré en sql
Mais tu connais peut étre et je fais un bide (le but premier étant de résoudre mon pb, pas d'épater la galerie)
--
Pierre CFI
non rien à voir avec la question c'est en cherchant a resoudre un pb de transfert de base excel access et access excel , que j'ai constaté qu'on peut faire entre autre ceci macro dans un fichier excel, qui crée une table (de_excel)dans access depuis une base excel (base_totale) qui est dans un autre fichier excel fermé
Dim bd As DAO.Database
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "SELECT base_totale.* INTO de_excel IN 'd:accessexo access 97client_97.mdb' FROM base_totale IN 'c:legrisservicesdir production.xls'[excel 8.0;];" bd.close
excel en bd gére aussi les Insert into ou Update.... ce qui fait qu'on peut faire un filtre élaboré en sql Mais tu connais peut étre et je fais un bide (le but premier étant de résoudre mon pb, pas d'épater la galerie) -- Pierre CFI
michdenis
Bonjour Pierre,
Ce que tu veux faire :
Utiliser ADO ou DAO pour transférer des données qui sont dans un classeur fermé vers une table existante d'une base de données Access à partir d'une macro dans un classeur excel.
Je n'ai pas vraiment saisi à quel niveau se trouve ta difficulté s'il en est une.
Tu es sans aucun doute beaucoup plus familier que moi avec les possibilités qu'offre le langage SQL.
Salutations!
"Pierre CFI [mvp]" a écrit dans le message de news: non rien à voir avec la question c'est en cherchant a resoudre un pb de transfert de base excel access et access excel , que j'ai constaté qu'on peut faire entre autre ceci macro dans un fichier excel, qui crée une table (de_excel)dans access depuis une base excel (base_totale) qui est dans un autre fichier excel fermé
Dim bd As DAO.Database
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "SELECT base_totale.* INTO de_excel IN 'd:accessexo access 97client_97.mdb' FROM base_totale IN 'c:legrisservicesdir production.xls'[excel 8.0;];" bd.close
excel en bd gére aussi les Insert into ou Update.... ce qui fait qu'on peut faire un filtre élaboré en sql Mais tu connais peut étre et je fais un bide (le but premier étant de résoudre mon pb, pas d'épater la galerie) -- Pierre CFI
Bonjour Pierre,
Ce que tu veux faire :
Utiliser ADO ou DAO pour transférer des données qui sont dans un classeur fermé vers une table existante d'une base de
données Access à partir d'une macro dans un classeur excel.
Je n'ai pas vraiment saisi à quel niveau se trouve ta difficulté s'il en est une.
Tu es sans aucun doute beaucoup plus familier que moi avec les possibilités qu'offre le langage SQL.
Salutations!
"Pierre CFI [mvp]" <XXX_pierresalaun@aol.com> a écrit dans le message de news:uOz3ASB6DHA.2720@TK2MSFTNGP09.phx.gbl...
non rien à voir avec la question
c'est en cherchant a resoudre un pb de transfert de base excel access et access excel , que j'ai constaté qu'on peut faire
entre
autre ceci
macro dans un fichier excel, qui crée une table (de_excel)dans access depuis une base excel (base_totale) qui est dans un
autre
fichier excel fermé
Dim bd As DAO.Database
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "SELECT base_totale.* INTO de_excel IN 'd:accessexo access 97client_97.mdb' FROM base_totale IN
'c:legrisservicesdir production.xls'[excel 8.0;];"
bd.close
excel en bd gére aussi les Insert into ou Update.... ce qui fait qu'on peut faire un filtre élaboré en sql
Mais tu connais peut étre et je fais un bide (le but premier étant de résoudre mon pb, pas d'épater la galerie)
--
Pierre CFI
Utiliser ADO ou DAO pour transférer des données qui sont dans un classeur fermé vers une table existante d'une base de données Access à partir d'une macro dans un classeur excel.
Je n'ai pas vraiment saisi à quel niveau se trouve ta difficulté s'il en est une.
Tu es sans aucun doute beaucoup plus familier que moi avec les possibilités qu'offre le langage SQL.
Salutations!
"Pierre CFI [mvp]" a écrit dans le message de news: non rien à voir avec la question c'est en cherchant a resoudre un pb de transfert de base excel access et access excel , que j'ai constaté qu'on peut faire entre autre ceci macro dans un fichier excel, qui crée une table (de_excel)dans access depuis une base excel (base_totale) qui est dans un autre fichier excel fermé
Dim bd As DAO.Database
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "SELECT base_totale.* INTO de_excel IN 'd:accessexo access 97client_97.mdb' FROM base_totale IN 'c:legrisservicesdir production.xls'[excel 8.0;];" bd.close
excel en bd gére aussi les Insert into ou Update.... ce qui fait qu'on peut faire un filtre élaboré en sql Mais tu connais peut étre et je fais un bide (le but premier étant de résoudre mon pb, pas d'épater la galerie) -- Pierre CFI
Pierre CFI [mvp]
dans mon cas , c'est pas tout à fait ce code, je recupére des BD qui se trouvent dans 980 fichiers excel (sur réseau dans toute la france je compléte une base access, je fais les traitements en sql sur access, puis redispatch les données traitées sur les 980 fichiers et tout çà depuis un fichier autre excel bon mais c'était juste pour causer... :o))) -- Pierre CFI
dans mon cas , c'est pas tout à fait ce code, je recupére des BD qui se trouvent dans 980 fichiers excel (sur réseau dans toute la
france
je compléte une base access, je fais les traitements en sql sur access, puis redispatch les données traitées sur les 980 fichiers
et tout çà depuis un fichier autre excel
bon mais c'était juste pour causer... :o)))
--
Pierre CFI
dans mon cas , c'est pas tout à fait ce code, je recupére des BD qui se trouvent dans 980 fichiers excel (sur réseau dans toute la france je compléte une base access, je fais les traitements en sql sur access, puis redispatch les données traitées sur les 980 fichiers et tout çà depuis un fichier autre excel bon mais c'était juste pour causer... :o))) -- Pierre CFI