Print side | Luk vindue

Dialogboks vha makro

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=219
Udskrevet den: 04.Dec.2024 kl. 20:34


Emne: Dialogboks vha makro
Besked fra: peda
Emne: Dialogboks vha makro
Posteringsdato: 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



Svar:
Besked fra: Allan
Posteringsdato: 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


Besked fra: peda
Posteringsdato: 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


Besked fra: Allan
Posteringsdato: 02.Feb.2011 kl. 14:57

Hej peda,

Har du autofilter på kolonne G?
 
//Allan


Besked fra: peda
Posteringsdato: 02.Feb.2011 kl. 14:59
Ja, som udgangspunkt har jeg autofilter på. Bruger ikke altid makroen til at aktivere boksen
mvh
Peda


Besked fra: Allan
Posteringsdato: 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
 
 


Besked fra: peda
Posteringsdato: 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
 


Besked fra: Allan
Posteringsdato: 03.Feb.2011 kl. 14:32
Hej Peda,
 
Jeg ved det faktisk ikke, jeg havde oprindelig misforstået dit spørgsmål.Tongue
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


Besked fra: peda
Posteringsdato: 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


Besked fra: Allan
Posteringsdato: 03.Feb.2011 kl. 15:18
Ja, det noget mystisk.
Hovedsagen er dog at det virker nu Confused
 
God dag Peda.
 
//Allan


Besked fra: peda
Posteringsdato: 03.Feb.2011 kl. 15:24
Tak i lige måde
peda


Besked fra: rassten
Posteringsdato: 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


Besked fra: Allan
Posteringsdato: 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) LOL 
 
//Allan
 


Besked fra: rassten
Posteringsdato: 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


Besked fra: rassten
Posteringsdato: 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


Besked fra: Allan
Posteringsdato: 04.Feb.2011 kl. 09:30
Citat: rassten 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...
 
Citat: rassten 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' Wink som egentlig kun kom på banen fordi jeg havde misforstået spørgsmålet.
 
Tak for input rassten.
 
//Allan


Besked fra: peda
Posteringsdato: 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



Print side | Luk vindue