Avatar billede dane022 Seniormester
12. november 2007 - 12:24 Der er 17 kommentarer og
1 løsning

Problem med vis/skjul række ved vba

Jeg har et problem med at få vist/skjult en række.

Koden ligger i et modul, som er sat til at køre når man vælger i en drop down box.

Valget i drop down boxen, giver enten en værdi i række 44, eller returnerer et 0 hvis der ikke er nogen værdi. Række 44 skal skjules hvis der ikke returneres en værdi til f.eks. h44, ellers skal den vises. Dette lykkes ikke.

Det pudsige er at der er nøjagtig samme kode for linie 21, og her virker det.

Er der nogen der vil kigge på regnearket, det er klar til at blive sendt.
Avatar billede dane022 Seniormester
12. november 2007 - 12:32 #1
For øvrigt har jeg det samme problem med kollone Z, koden er placeret samme sted
Avatar billede jkrons Professor
12. november 2007 - 12:34 #2
Send det til jan@kronsell.net
Avatar billede jkrons Professor
12. november 2007 - 13:00 #3
Jeg kigger på det.
Avatar billede jkrons Professor
12. november 2007 - 13:40 #4
Er det rigtigt, at det kun er, hvis Stilling er to, at 44 skal skjules, eller er der også andre situationer, hvor h44/i44 ikke giver værdier større end 0?

I hvilke situationer skal AG19 og AG42 blive andet end Nej?
Avatar billede jkrons Professor
12. november 2007 - 13:41 #5
to=tom
Avatar billede dane022 Seniormester
12. november 2007 - 13:53 #6
Hvis jeg forstår dig rigtigt, så er det ligemeget hvad stillingen er (eller om den er tom), men returnerer den 0 i h44 og i44, så skal rækken skjules. Er det det du mener?
Avatar billede jkrons Professor
12. november 2007 - 13:57 #7
Ja. Problemet er, at den virker fint, hvis jeg rem'er en af IF..THEN...ELSE grupperne ud - ligegyldigt hvilken, men den virker ikke, hvis de alle er der.  Og det kan jeg ikke umiddelbart gennemskue nogen grund til.
Avatar billede dane022 Seniormester
12. november 2007 - 13:59 #8
Det positive er at så er jeg ikke helt tosset, men det negative er, hvad gør jeg så
Avatar billede jkrons Professor
12. november 2007 - 14:01 #9
Jeg tror at problemet muligvis ligger her:

If Worksheets("løn").Range("k20") = "x" Then
Else
Worksheets("data2").Range("k4") = Worksheets("data").Range("k4")
Worksheets("data2").Range("l4") = Worksheets("data").Range("l4")
End If

Der mangler ligesom noget efter Then. Du går direkte til Else
Avatar billede dane022 Seniormester
12. november 2007 - 14:02 #10
hvad skal der så stå, fordi hvis det er "x", så skal den ikke gøre noget
Avatar billede jkrons Professor
12. november 2007 - 14:04 #11
Ja, godt spørgsmål, for nu har selv prøvet at sætte noget ind, og det ændrer absolut ingenting.
Avatar billede jkrons Professor
12. november 2007 - 14:13 #12
Og nu virker det ikke, uanset, hvad jeg gør. Mystisk.
Avatar billede dane022 Seniormester
12. november 2007 - 14:19 #13
Det er som om at hvis man 2 gange i træk vælger en stilling der ikke giver noget i linie 44, så gør den hvad den skal anden gang. Det samme sker hvis man vælger en stilling der giver noget i række 44. Kan der være noget beregning der ikke bliver kørt ordentligt igennem?
Avatar billede jkrons Professor
12. november 2007 - 14:22 #14
Jeg spekulerer lidt på, om problemer ligger i, at der muligvis er konfflikt mellem makroen her, og din Worksheet_Change hændelse.
Avatar billede dane022 Seniormester
12. november 2007 - 14:23 #15
Jeg kæmpe fjols, forklaring følger:
Sektionen med:
If Worksheets("løn").Range("k20") = "x" Then
Else
Worksheets("data2").Range("k4") = Worksheets("data").Range("k4")
Worksheets("data2").Range("l4") = Worksheets("data").Range("l4")
End If

Skal ligge før skjul/vis række 44 koden
Det skyldes at ved valg af stilling sørger ovenstående kode for at opdatere stillingsnr på begge dataark (data!k4 og data2!k4).
Jeg beklager meget den tid du har brugt på det her, du får selvfølgelig point for det
Avatar billede jkrons Professor
12. november 2007 - 14:29 #16
Fint nok! Jeg må indrømme, at det var lidt svært at gennemskue, hvad der foregik i de andre ark :-)

Men bortset fra det, er der så ikke et = "nej" for meget her:

If Worksheets("løn").Range("ag19") = "nej" Or Worksheets("løn").Range("ag42") = "nej" = "nej" Then
Avatar billede dane022 Seniormester
12. november 2007 - 14:31 #17
jo, den opdagede jeg efter det var sendt til dig
Avatar billede jkrons Professor
12. november 2007 - 15:18 #18
Godt nok. Tak for point.
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