05. maj 2008 - 19:19Der er
17 kommentarer og 1 løsning
Tilpasse makro
Jeg har en listbox i ark3. Når en bruger dobbeltklikker på en af de valgmuligheder kører nedenstående makro som finder den samme værdi i ark2. Makroen kopierer bestemte celler og indsætter dem i ark3 med start i kolonne B og celle31. Jeg vil gerne have ændret makro sådan at når makroen er kørt første gang og udfyld cellerne B31:B34 så næste gang makroen kører så skal værdier indsættes i kolonne C31:C34. Åltså hver gang makro kører så skal værdier indsættes i næste tommer kolonne.
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Dim rFound As Range Dim rLook As Range Dim rValue As String Dim rDest As Range If ListBox1.Value = var1 Then Exit Sub rValue = ListBox1.Value var1 = rValue
Set rLook = Worksheets("Ark2").Range("e1:e65000") Set rFound = rLook.Find(rValue, , , xlWhole) If Not rFound Is Nothing Then With Worksheets("Ark3") .Range("B31") = rFound.Offset(0, 0).Value .Range("B32") = rFound.Offset(1, 0).Value .Range("B33") = rFound.Offset(0, 7).Value .Range("B34") = rFound.Offset(0, 5).Value End With End If End Sub
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.
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Dim rFound As Range Dim rLook As Range Dim rValue As String Dim rDest As Range If ListBox1.Value = var1 Then Exit Sub rValue = ListBox1.Value var1 = rValue
Set rLook = Worksheets("Ark2").Range("e1:e65000") Set rFound = rLook.Find(rValue, , , xlWhole) If Not rFound Is Nothing Then With Worksheets("Ark3") kol = Cells(31, 255).End(xlToLeft).Column .Cells(31, kol) = rFound.Offset(0, 0).Value .Cells(32, kol) = rFound.Offset(1, 0).Value .Cells(33, kol) = rFound.Offset(0, 7).Value .Cells(34, kol) = rFound.Offset(0, 5).Value End With End If End Sub
Den virker ikke som den skal. Den kopirer celler med start i celle a31 og den skal starte i celle B31 og desuden skriver den ikke i den næste række, men den bliver ved med at overskrive den samme række.
Jeg har også et problem mere. Jeg vil gerne tjekke hvad der står i cellen .rFound.Offset(0,2) og hvis der står "Kalundborg" så skal der i celle 33 ark3 skrives værdi .Cells(33, kol) = rFound.Offset(0, 7).Value og hvis der står noget andet så skal der skrives i den samme celle .Cells(33, kol) = rFound.Offset(0, 2).Value
Noget i den her retning If .rFound.Offset(0,2).Value = "Kalundborg" then .Cells(33, kol) = rFound.Offset(0, 7).Value Else .Cells(33, kol) = rFound.Offset(0, 2).Value
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.