Forfatter |
Emne Søg Emne funktioner
|
peda
Sølv bruger
Medlem: 30.Nov.2010
Land: Danmark
Status: Offline
Point: 109
|
Emne: Dialogboks vha makro Sendt: 02.Feb.2011 kl. 09:18 |
Hej Gruppe
Jeg har et regneark med en masse navne. Mit ønske er, via en makro at kunne fremkalde dialogboksen Tekstfilter
med mulighed for at taste en værdi og derpå søge. I en ældre version af excel har nedenstående kode virket, men det gør den ikke mere!!
Sub søg_fornavn() ' ' søge Makro ' Makro indspillet 19-12-2003 af Hung
' Dim Svar As Boolean Svar = Application.Dialogs(xlDialogFilter).Show(7) End Sub
Kan I hjælpe med den rigtige kode til Excel 2010
mvh
Peda
|
|
|
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 02.Feb.2011 kl. 13:09 |
Hej Peda,
Jeg tror denne kode vil virke, jeg mener nemlig at skillelinjen mellem de 2 måder går ved 2007
Sub find_fornavn() Dim Svar As Boolean If Application.Version > 12 Then Svar = Application.Dialogs(xlDialogFilter).Show(7) Else Svar = Application.Dialogs(xlDialogFilter).Show(6) End If End Sub
Prøv den lige af hos dig
//Allan
|
|
peda
Sølv bruger
Medlem: 30.Nov.2010
Land: Danmark
Status: Offline
Point: 109
|
Sendt: 02.Feb.2011 kl. 14:53 |
Hej Allan
Makroen kører godt nok uden fejl. Da den tilsyneladende ender med den nederste (6), så ender denmed at søge i kolonne 6 i stedet for kolonne 7. Dermed forsøger den at returnere noget fra en forkert kolonne.
Jeg forstår ikke helt hvorfor kolonnenummeret skal ændres med versionen. Har du en forklaring på det?
mvh
Peda
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 02.Feb.2011 kl. 14:57 |
Hej peda,
Har du autofilter på kolonne G?
//Allan
|
|
peda
Sølv bruger
Medlem: 30.Nov.2010
Land: Danmark
Status: Offline
Point: 109
|
Sendt: 02.Feb.2011 kl. 14:59 |
Ja, som udgangspunkt har jeg autofilter på. Bruger ikke altid makroen til at aktivere boksen
mvh
Peda
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 02.Feb.2011 kl. 16:12 |
Så burde den da virke i kolonne 7 (G)
Application.Dialogs(xlDialogFilter).Show(7)
Vises dialogboksen slet ikke?
//Allan
|
|
peda
Sølv bruger
Medlem: 30.Nov.2010
Land: Danmark
Status: Offline
Point: 109
|
Sendt: 03.Feb.2011 kl. 12:06 |
Hej Allan
Nu kører den - Tusind tak.
Denoprindelige kode som du sendte:
Sub find_fornavn() Dim Svar As Boolean If Application.Version > 12 Then Svar = Application.Dialogs(xlDialogFilter).Show(7) Else Svar = Application.Dialogs(xlDialogFilter).Show(6) End If End Sub
Her har jeg vendt STørre end tegnet, så funker det fint.
Nu har jeg været inde i stifinder og konstateret at min excel version benævnes som Office version 14. Jeg kan stadig ikke forstå hvorfor den IKKE virker med denne kode:
Sub find_fornavn() Dim Svar As Boolean Svar = Application.Dialogs(xlDialogFilter).Show(7) End Sub
Den vil vel altid ende i denne linie, når jeg bruger version 14.
Det har ingen betydning jeg er bare nysgerrig
mvh
Peda
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 03.Feb.2011 kl. 14:32 |
Hej Peda,
Jeg ved det faktisk ikke, jeg havde oprindelig misforstået dit spørgsmål.
Men jeg vil alligevel spørge om hvad du bruge 'Svar' til, siden den sættes til Boolean (True or False)
Hvis du ikke skal bruge 'Svar' til noget, hvad så hvis du bare bruger denne kode:
Sub find_fornavn()
Application.Dialogs(xlDialogFilter).Show (7)
End sub
//Allan
|
|
peda
Sølv bruger
Medlem: 30.Nov.2010
Land: Danmark
Status: Offline
Point: 109
|
Sendt: 03.Feb.2011 kl. 14:50 |
Hej Allan
Det er her den store mystik opstår. Hvis jeg anvender din nye kode og indtaster noget i dialogboksen og trykker OK, så!!!
og herpå låser Excel fuldstændigt, men bruger jeg den anden kode virker det.
Jeg kan ikke forklare mere. bare mærkeligt ikke
mvh
Peda
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 03.Feb.2011 kl. 15:18 |
Ja, det noget mystisk.
Hovedsagen er dog at det virker nu
God dag Peda.
//Allan
|
|
peda
Sølv bruger
Medlem: 30.Nov.2010
Land: Danmark
Status: Offline
Point: 109
|
Sendt: 03.Feb.2011 kl. 15:24 |
|
|
rassten
Guld bruger
Medlem: 26.Okt.2010
Status: Offline
Point: 694
|
Sendt: 03.Feb.2011 kl. 18:15 |
Undskyld jeg blander mig, men der skal ikke () om tallet
Application.Dialogs(xlDialogFilter).Show 7
|
VH rassten
Arbejde excel 2010 Privat excel 2010
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 03.Feb.2011 kl. 21:44 |
Hej rassten,
Med eller uden () giver giver ingen forskel hos mig.
Spørgsmålet er om det giver forskel hos peda på hans Excel 2010.
Rassten, kan du forklare mysteriet mht. peda's problem?
Sub find_fornavn()
Dim Svar As Boolean
Svar = Application.Dialogs(xlDialogFilter).Show (7)
End sub
Virker ikke
MEN
Sub find_fornavn() Dim Svar As Boolean If Application.Version > 12 Then Svar = Application.Dialogs(xlDialogFilter).Show(7) Else Svar = Application.Dialogs(xlDialogFilter).Show(6) End If End Sub
Virker...
(Jeg skal nok udelade paranteserne en anden gang)
//Allan
|
|
rassten
Guld bruger
Medlem: 26.Okt.2010
Status: Offline
Point: 694
|
Sendt: 03.Feb.2011 kl. 22:09 |
Desværre kan jeg ikke hjælpe. Begge virker fint hos mig. Og den eneste forskel er om det er kolonne F eller G som bliver filtreret, om det er over eller under version af excel 2003
Jeg kan få en fejlmeddelelse, hvis jeg har glemt filter på øverste række.
Beklager ikke til megen hjælp
|
VH rassten
Arbejde excel 2010 Privat excel 2010
|
|
rassten
Guld bruger
Medlem: 26.Okt.2010
Status: Offline
Point: 694
|
Sendt: 03.Feb.2011 kl. 22:16 |
Men der selvfølgelig også en helt anden måde
Sub B_test() ExecuteExcel4Macro "filter?(7)" End Sub
|
|
VH rassten
Arbejde excel 2010 Privat excel 2010
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 04.Feb.2011 kl. 09:30 |
rassten skrev:
Desværre kan jeg ikke hjælpe. Begge virker fint hos mig. Og den eneste forskel er om det er kolonne F eller G som bliver filtreret, om det er over eller under version af excel 2003
|
Det samme her...
rassten skrev:
Men der selvfølgelig også en helt anden måde
Sub B_test() ExecuteExcel4Macro "filter?(7)" End Sub
|
|
Virker også fint her, den er i hvert fald mere elegant end min med 'Application.version' som egentlig kun kom på banen fordi jeg havde misforstået spørgsmålet.
Tak for input rassten.
//Allan
|
|
peda
Sølv bruger
Medlem: 30.Nov.2010
Land: Danmark
Status: Offline
Point: 109
|
Sendt: 08.Feb.2011 kl. 19:15 |
Hej Allan og Rassten
Nu kan det vist ikek blive mere elegant. Flot kodestump, hvor er Excel dog smart, og jeg er glad for at I har hjulpet begge to
TAK
mvh
Peda
|
|