Avatar billede KenneyD71 Nybegynder
12. marts 2014 - 11:27 Der er 11 kommentarer og
1 løsning

Erstat værdi i et ark med værdi fra et andet ark ud fra 2 kriterier

Jeg har ark 1.
Der står en masse rækker.
CPR og et tilfældigt sted i denne række står værdien xxxxx/dd/g11

Jeg har ark 2.
der står:
Ax: cpr
Bx:xxxxx/dd/g11
Cx:aaaa

jeg ønsker at køre en macro der gør følgende:
Med udgangspunkt i ark2.
Tag cpr i AX. Slå værdi op i ark1.
find værdi i bx i ark 2 og ark 1 og erstat denne med cx i ark 1
Avatar billede KenneyD71 Nybegynder
12. marts 2014 - 11:34 #1
Det vil sige, det er blot en erstatning for den manuelle CTRL+B + Erstat.
Avatar billede supertekst Ekspert
12. marts 2014 - 13:14 #2
Ax, Bx & Cx er det kolonner i Ark2 eller "koder"
Hvis Ja i hvilken række.
Avatar billede supertekst Ekspert
12. marts 2014 - 13:42 #3
Rem VBA indsættes under Ark2
Rem ========================
Dim AXCpr, BXværdi, CXværdi
Dim række As Integer, kolonne As Integer
Sub udførSøgOgErstat()
    AXCpr = ActiveSheet.Range("A1")                'kan justeres
    BXværdi = ActiveSheet.Range("B1")
    CXværdi = ActiveSheet.Range("C1")
   
    række = findRække(ActiveWorkbook.Sheets(1), "A1:A65000", AXCpr)
    If række > 0 Then
        kolonne = findKolonne(ActiveWorkbook.Sheets(1), "A" & række & ":XFD" & række, BXværdi)
        If kolonne > 0 Then
            Sheets(1).Activate
            ActiveSheet.Cells(række, kolonne).Select
            Selection = CXværdi
        End If
    End If
   
    Sheets(2).Select
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
End Function
Private Function findKolonne(ark, område, id)
    With ark.Range(område)
        Set c = .Find(id, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            findKolonne = c.Column
        Else
            findKolonne = 0
        End If
    End With
End Function
Avatar billede KenneyD71 Nybegynder
12. marts 2014 - 18:49 #4
AX skal forstås som række x i kolonne A og sådan fremdeles.
Avatar billede supertekst Ekspert
16. marts 2014 - 10:08 #5
Status.
Avatar billede KenneyD71 Nybegynder
16. marts 2014 - 19:40 #6
Jeg har endnu ikke haft mulighed for at teste.
I'll be back asap.
Avatar billede supertekst Ekspert
16. marts 2014 - 23:00 #7
Ok..
Avatar billede KenneyD71 Nybegynder
17. marts 2014 - 10:16 #8
I
Private Function findKolonne(ark, område, id)
    With ark.Range(område)
        Set c = .Find(id, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            findKolonne = c.Column
        Else
            findKolonne = 0
        End If
    End With
End Function

Siger debug, at der er en fejl i:
    With ark.Range(område)
Avatar billede supertekst Ekspert
17. marts 2014 - 10:45 #9
Ok - vender tilbage
Avatar billede supertekst Ekspert
17. marts 2014 - 11:17 #10
Er der mulighed for at få en kopi af din testfil?
@-adresse under min profil.
Avatar billede KenneyD71 Nybegynder
04. juli 2014 - 18:19 #11
Du fik aldrig dine point, Supertekst.
Klik et "svar".

Tak for hjælpen.
Avatar billede supertekst Ekspert
04. juli 2014 - 18:23 #12
Det får du her og selv tak..
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