Avatar billede RubenSor Nybegynder
02. februar 2012 - 10:55 Der er 7 kommentarer og
1 løsning

Excel 2003 loop if

Jeg har en masse forskellige varenumre i området "M6-M4110". Jeg skal have lavet en "konveteringsmakro" som evt. kører et loop. Hver gang den møder et bestemt varenummer skal den lave det om til et andet varenummer? Og sådan skal den køre hele vejen ned. Hvordan kan det lige laves? Det skal siges at nogle celler kan godt være tomme men den skal alligevel køre ned til celle 4110

Mvh Ruben
02. februar 2012 - 12:00 #1
Er det ikke bare en "Søg & Erstat"
Avatar billede RubenSor Nybegynder
02. februar 2012 - 12:06 #2
Kunne man godt, men vil gerne have den til at gøre det automatisk med en makro, så man ikke skal sidde hver gang og gøre det
Avatar billede store-morten Ekspert
02. februar 2012 - 12:28 #3
Prøv:
Sub SøgOgErstat()
    Range("M6:M4110").Select
    Selection.Replace What:="1", Replacement:="2", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub


Erstatter 1 med 2 i område M6:M4110
Avatar billede store-morten Ekspert
02. februar 2012 - 12:35 #4
Det der skal findes = A1
Det det skal erstattes med = B1
Sub SøgOgErstat()
Find = Range("A1").Value
Til = Range("B1").Value
    Range("M6:M4110").Select
    Selection.Replace What:=Find, Replacement:=Til, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
Avatar billede store-morten Ekspert
02. februar 2012 - 12:40 #5
Med Inputbox:
Sub SøgOgErstat()
Find = Application.InputBox("Søg efter Nr.:")
Til = Application.InputBox("Erstat med Nr.:")
    Range("M6:M4110").Select
    Selection.Replace What:=Find, Replacement:=Til, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
Avatar billede RubenSor Nybegynder
02. februar 2012 - 12:42 #6
Tror jeg selv har fundet en løsning!

For Each x In Range("J6:J4110")
    If x = "130102505000270" Then x.Offset(0, 3).Value = "174102505000270"
    If x = "130102505000300" Then x.Offset(0, 3).Value = "174102505000300"
    If x = "130102505000420" Then x.Offset(0, 3).Value = "174102505000420"
    If x = "130102505000450" Then x.Offset(0, 3).Value = "174102505000450"
    If x = "130102505000480" Then x.Offset(0, 3).Value = "174102505000480"
    If x = "130102505000540" Then x.Offset(0, 3).Value = "174102505000540"

   
   
  Next
 
End Sub
Avatar billede H_Klein Novice
05. februar 2012 - 15:20 #7
Kan du så ikke lige lukke spørgsmålet ved at tildele dig selv et svar så det ikke ligger og "fylder"? ;-)
Avatar billede RubenSor Nybegynder
10. februar 2012 - 10:45 #8
svar
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
Kurser inden for grundlæggende programmering

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