Avatar billede phm1970 Mester
31. august 2007 - 15:30 Der er 14 kommentarer og
1 løsning

validate listeboks skal køre en makro

Jeg har via validering lavet et liste boks med forskellige emner, jeg vil gerne at når man har valgt et emne, skal der køres en bestemt makro.
Hvor skal det skrives ind henne ? og hvad skal der stå ?
Avatar billede excelent Ekspert
31. august 2007 - 16:33 #1
Put denne i arkets kodemodul (højreklik på fane - vælg Vis programkode)
Valliste i A1

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
If Target = "Valg.1" Then Call Makro1
If Target = "Valg.2" Then Call Makro2
End Sub
Avatar billede excelent Ekspert
03. september 2007 - 15:50 #2
Hvordan går det ?
Avatar billede phm1970 Mester
03. september 2007 - 16:03 #3
Var nok ikk klar nok i min beskrivelse .... er samme makro der skal køres uanset hvad der vælges, da den fjener tommelinjer :-)

Hele min kode ser sådan her ud ..... meningen er at den commandbutton jeg har skal bare aktiveres hver gang man har foretaget et valg

'Skjul tomme linjer
Private Sub CommandButton1_Click()
'Slukker skærmopdatering
Application.ScreenUpdating = False
'Slukker automatisk genberegning
Application.Calculation = xlCalculationManual


Rows("14:191").Select
Selection.EntireRow.Hidden = False

i = 14

Do While i < 192
    If Cells(i, 1) = 0 Then
        Rows(i).Select
        Selection.EntireRow.Hidden = True
    End If
   
   
   
    i = i + 1
Loop
'tænder for automatisk genberegning
Application.Calculation = xlCalculationAutomatic
'tænder for skærmopdatering
Application.ScreenUpdating = True

Application.Calculation = xlCalculationAutomatic
End Sub
'Vis alle linjer
Private Sub CommandButton2_Click()
Rows("14:191").Select
Selection.EntireRow.Hidden = False

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
Avatar billede excelent Ekspert
03. september 2007 - 16:21 #4
Ret A1 til den celle hvor du har datavalliste
Så kører din kode uanset hvad du vælger i datavallisten

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
Call CommandButton1_Click
End Sub
Avatar billede phm1970 Mester
04. september 2007 - 14:59 #5
Jeg har nu lagt den ind i bunden .... men det virker ikk :-(
Avatar billede phm1970 Mester
04. september 2007 - 15:02 #6
Jeg får nu en Compile error:

Ambigous name detected:worksheet_change

er stået helt af hehe :-))
Avatar billede excelent Ekspert
04. september 2007 - 15:23 #7
Du skal bare slette disse linier
der må ikke være 2 ens sub's

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
Avatar billede phm1970 Mester
04. september 2007 - 16:02 #8
Så er det rettet ... men den virker stadig ikk ?? sker ikk noget ... når man skifter valg i boksen .....
Avatar billede excelent Ekspert
05. september 2007 - 18:03 #9
ok:
Hvad hedder Arket hvor du har din validate-listboks ?
I hvilken celle har du din validate-listboks ?
Avatar billede phm1970 Mester
06. september 2007 - 15:46 #10
Det hedder Ark1 og cellen hedder d6 (har rettet a1 til d6) du får lige hele koden igen som den ser ud nu :-)

Private Sub CommandButton1_Click()
'Slukker skærmopdatering
Application.ScreenUpdating = False
'Slukker automatisk genberegning
Application.Calculation = xlCalculationManual


Rows("14:191").Select
Selection.EntireRow.Hidden = False

i = 14

Do While i < 192
    If Cells(i, 1) = 0 Then
        Rows(i).Select
        Selection.EntireRow.Hidden = True
    End If
   
   
   
    i = i + 1
Loop
'tænder for automatisk genberegning
Application.Calculation = xlCalculationAutomatic
'tænder for skærmopdatering
Application.ScreenUpdating = True

End Sub

Private Sub CommandButton2_Click()
Rows("14:191").Select
Selection.EntireRow.Hidden = False

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
Call CommandButton1_Click


End Sub
Avatar billede phm1970 Mester
06. september 2007 - 15:47 #11
oka rettelsen var der så ikk ... så har nu rettet a1 til d6 igen ... hehe.. og nu ... tja ... nu opdatere den godt nok .. men jeg kan ikke vælge noget fra boksen.. hvergang jeg klikker på den for at få listen frem opdateren den og listen forsvinder før jeg kan vælge noget hehe..... så det er for tidligt den opdaterer
Avatar billede excelent Ekspert
06. september 2007 - 17:42 #12
du er velkommen til at sende arket til
pm@madsen.tdcadsl.dk
Avatar billede excelent Ekspert
06. september 2007 - 17:48 #13
slet lige denne :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
Call CommandButton1_Click
End Sub

og udskift med denne :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D6")) Is Nothing Then Exit Sub
Call CommandButton1_Click
End Sub

og jeg går ud fra at det er "CommandButton1_Click"
og ikke "CommandButton2_Click" som skal køres når du vælger i D6 ?
Avatar billede phm1970 Mester
07. september 2007 - 10:10 #14
Weeeeeeee det virker sgu :-) og ja var knap 1 :-)) tak points er hermed givet til dig :-)
Avatar billede excelent Ekspert
07. september 2007 - 10:11 #15
OK VELBEKOM :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester