22. januar 2004 - 22:27Der er
11 kommentarer og 1 løsning
Fejl i kode -
Når jeg åbner programmet og trykker på buttom udfører programmet handlingerne 1-3 korrekt. Når jeg bliver i programmet og næste gang aktiverer buttom afleveres der ikke oplysninger som anført under handling1 men programmet springer til handling handling 3 og udfører altså handling 1 og 3 under ét, altså på samme "ark". Handling nr. 2 er hele tiden korrekt. Hvad har jeg gjort forkert?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Public Sub fastplads() Range("a3").Select If Range("a3").Value = "" Then Range("a3").Select Else lastrow = Cells(Rows.Count, "a").End(xlUp).Row Range("a" & lastrow + 1).Select End If End Sub
På listbox3.click har jeg følgende, der skal kalde arket "post1" hvorpå handling1 skal udføres: Private Sub ListBox3_Click() If ListBox3.Text = "Januar" Then Sheets("Post1").Select ElseIf ListBox3.Text = "Februar" Then Sheets("Post2").Activate ElseIf ListBox3.Text = "Marts" Then Sheets("Post3").Activate ElseIf ListBox3.Text = "April" Then Sheets("Post4").Activate ElseIf ListBox3.Text = "Maj" Then Sheets("Post5").Activate ElseIf ListBox3.Text = "Juni" Then Sheets("Post6").Activate ElseIf ListBox3.Text = "Juli" Then Sheets("Post7").Activate ElseIf ListBox3.Text = "August" Then Sheets("Post8").Activate ElseIf ListBox3.Text = "September" Then Sheets("Post9").Activate ElseIf ListBox3.Text = "Oktober" Then Sheets("Post10").Activate ElseIf ListBox3.Text = "November" Then Sheets("Post11").Activate ElseIf ListBox3.Text = "December" Then Sheets("Post12").Activate
Jeg har prøvet af ændre koden til: If ListBox3.Text = "Januar" Then Sheets("post1").Activate End If
If ListBox1.Text = "Autodrift" Then fastplads osv og så virker det tilsyneladende. Men jeg vil gerne bibeholde listen januar, februar osv på listbox 3. Og det er måske heri fejlen ligger. Meningen er, at når der skal posteres i januar,skal "post1" aktiveres, i februar er det "post2" der skal aktiveres. Alt for at undgå en masse if'er når jeg koder. Hvordan kan jeg ellers gøre?
>bak, jeg tror, at jeg fandt ud af det. Hvis du ikke har yderligere kommentarer, så lav venligst lige et svar, så du kan få dine point!
Synes godt om
Slettet bruger
23. januar 2004 - 09:50#9
Hvis du vil undgå if sætninger kan du bruge Select/Case statements (se hjælpen)
f.eks: ---------------------------- Select Case ListBox1.Text Case "Januar": Sheets("Post2").Activate Case "Februar": Sheets("Post3").Activate . . osv.
Case Else: End Select ----------------------------
Det er bare en anden måde at lave betingelser i koden.
Nu kan jeg ikke se hvad formålet med koden er, men det plejer ikke at være nødvendigt i VBA makroer at bruge .Select eller .Activate på et ark for at kunne gøre noget med det. Men det er måske det der er formålet ? :-)
>blackadder Ja, jeg indtaster nogle tal i en form og disse tal skal så overføres til et eller andet ark. Om det er if eller case er ikke så vigtigt for mig. Meningen var at jeg ved hjælp af listen slap for at skrive betingelserne for hver mulighed. Men jeg tror at problemet er løst nu. Jeg venter bare på at bak laver et svar, så han kan få nogle point. Men tak for hjælpen også til dig!
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.