prøv med noget i dnne dur. Går ud fra at din liste hedder MONTHS
Private Sub CommandButton2_Click() Dim i As Integer For i = 0 To listbox1.ListCount - 1 If listbox1.Selected(i) Then [MONTHS].Offset(i, 1) = listbox1.List(i) End If Next i End Sub
Private Sub CommandButton2_Click() Dim i As Integer For i = 0 To listbox1.ListCount - 1 If listbox1.Selected(i) Then [MONTHS].Offset(i, 1) = 1 End If Next i End Sub
Private Sub cmdOk_Click() Dim i As Integer For i = 0 To lboMåneder.ListCount - 1 If lboMåneder.Selected(i) Then Worksheets("List").Range("B1").Offset(i, 0) = 1 End If Next i Unload Me End Sub
Måske du kunne hjælpe med det lille tillægsspørgsmål: Hvis jeg nu ønsker en streng, som ser sådan ud "001100000000", hvis man f.eks. vælger februar og marts, hvordan ser koden så ud?
Private Sub cmdOk_Click() Dim i As Integer Dim sMonth As String For i = 0 To lboMåneder.ListCount - 1 If lboMåneder.Selected(i) Then Worksheets("List").Range("B1").Offset(i, 0) = 1 sMonth = sMonth & "1" Else sMonth = sMonth & "0" End If Next i Range(WhereEver).NumberFormat = "000000000000" Range(WhereEver).Text = sMonth Unload Me End Sub
Har løst det: Private Sub cmdOk_Click() Dim i As Integer Dim Valg As Integer Dim Streng As String
For i = 0 To lboMåneder.ListCount - 1 If lboMåneder.Selected(i) Then Worksheets("List").Range("B1").Offset(i, 0) = 1 Valg = "1" Else Valg = "0" End If Streng = Streng & Valg Next i 'Worksheets("List").Range("B14").Value = streng Unload Me End Sub
Private Sub cmdOk_Click() Dim st As String Dim i As Integer For i = 0 To lboMåneder.ListCount - 1 If lboMåneder.Selected(i) Then st = st & "1" Worksheets("List").Range("B1").Offset(i, 0) = 1 Else st = st & "0" End If Next i Unload Me End Sub
Det smarte er at han bruger Worksheet_SelectionChange til at huske hvad der stod i cellen/rne inden de bliver ændret (indlæses i de variable han definerer i toppen), og derefter genbruger disse værdier når cellen/rne er blevet ændret Worksheet_Change
tak bak - præcist.... men når der er valgt flere celler, og der indtastes i dem, så skifter ActiveCell, men det reagerer Worksheet_SelectionChanges ikke på... derfor bruges Worksheet_Change faktisk også til at huske den aktive cells tidligere værdi...
Der var én måde makroen ikke fungerede helt hensigtsmæssigt på: Jeg opdaterer ofte mange celler ad gangen ved at markere et område og så taste en værdi efterfulgt af CTRL+ENTER. Herved bliver alle celler udfyldte med den pågældende værdi. I makroen bliver kun den første celle (den aktive) behandlet.
Ja, den kan kun håndtere en celle ad gangen, men kan sikkert udvides, hvis det en dag slukke blive nødvendigt *gg*
Synes godt om
Ny brugerNybegynder
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.