Avatar billede denero Juniormester
20. januar 2012 - 22:25 Der er 4 kommentarer og
1 løsning

Erstatte samme værdi flere steder i samme kolonne

Rem Version 2
Dim ræk As Integer, erstatRække As Integer
Private Sub CommandButton1_Click()
Rem Ark1
    erstatRække = findRække(Sheets(1), "B:B", Me.ComboBox1)
    If erstatRække > 0 Then
        Range("B" & erstatRække).Value = Me.TextBox1
    End If
   
Rem Ark2
    erstatRække = findRække(Sheets(2), "B:B", Me.ComboBox1)
    If erstatRække > 0 Then
        Sheets(2).Range("B" & erstatRække).Value = Me.TextBox1
    End If
   
    Me.CommandButton1.Enabled = False
End Sub
Private Sub TextBox1_Change()
    If Me.TextBox1 <> "" And Len(Me.TextBox1) = 7 Then
        Me.CommandButton1.Enabled = True
    Else
        Me.CommandButton1.Enabled = False
    End If
End Sub
Private Sub UserForm_activate()
    Me.ComboBox1.Clear
    For ræk = 2 To ActiveCell.SpecialCells(xlLastCell).Row
        If Range("B" & ræk).Value <> "" Then
            Me.ComboBox1.AddItem Range("B" & ræk)
        End If
    Next ræk
End Sub
Private Function findRække(ark, område, id)

    With ark.Range(område)
        Set c = .Find(id, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            findRække = c.Row
        Else
            findRække = 0
        End If
    End With
    Exit Function

End Function

Bruger denne kode til at rette en værdi i 2 kolonner, en på hver sit ark. Udgangspunktet var, at der i disse kolonner kun var unikke værdier, men nu har jeg altså brug for at rette samme værdi flere steder i hver kolonne - altså på hver ark. Hvad skal der evt. tilføjes. Køres via userform.
Avatar billede kabbak Professor
20. januar 2012 - 23:52 #1
Ikke testet, men prøv, lav selv for ark2, hvis det virker

Rem Ark1
    erstatRække = findRække(Sheets(1), "B:B", Me.ComboBox1)
    If erstatRække > 0 Then
        Do Until findRække(Sheets(1), "B:B", Me.ComboBox1) = 0
            erstatRække = findRække(Sheets(1), "B:B", Me.ComboBox1)
            Range("B" & erstatRække).Value = Me.TextBox1
        Loop
    End If
Avatar billede denero Juniormester
21. januar 2012 - 11:55 #2
Hej Kabbak

Har prøvet det af men får en fejlmelding:

Compile error:
Invalid use of Me keyword
Avatar billede kabbak Professor
21. januar 2012 - 12:06 #3
Har du erstattet

Rem Ark1
    erstatRække = findRække(Sheets(1), "B:B", Me.ComboBox1)
    If erstatRække > 0 Then
        Range("B" & erstatRække).Value = Me.TextBox1
    End If

i din kode med denne

Rem Ark1
    erstatRække = findRække(Sheets(1), "B:B", Me.ComboBox1)
    If erstatRække > 0 Then
        Do Until findRække(Sheets(1), "B:B", Me.ComboBox1) = 0
            erstatRække = findRække(Sheets(1), "B:B", Me.ComboBox1)
            Range("B" & erstatRække).Value = Me.TextBox1
        Loop
    End If

Så skulle du ikke få problemer
Avatar billede denero Juniormester
21. januar 2012 - 12:31 #4
Er kommet op i gear - havde glemt noget. Det virker, lægger du et svar?
Avatar billede kabbak Professor
21. januar 2012 - 13:03 #5
;-))
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