Just nu i M3-nätverket
Gå till innehåll

Få ut lägstavärdet ur flera bladflikar Excel VBA


Tommy H

Rekommendera Poster

    If myLeverantor = "Bravis" Then                                         'Bravis
                wbBtoES = myLeverantor & " BTO.xlsx"
        
            Set shBraES = Workbooks("Bravis BTO.xlsx").Sheets("ES")         'Bravis.xlsx Blad ES
            Set shBraST = Workbooks("Bravis BTO.xlsx").Sheets("ST")         'Bravis.xlsx Blad ST
            Set shBraSO = Workbooks("Bravis BTO.xlsx").Sheets("SO Aut")     'Bravis.xlsx Blad SO Aut
    
        'söker i ES bladet
                Set C = shBraES.Range("A:B").Find(what:=X, LookIn:=xlValues, LookAt:= _
                xlWhole, MatchCase:=True)
                On Error Resume Next
                rnBtoES = C.Offset(0, 4).Value                              'gå till BTO-pris (E-kolumnen)

        'söker i ST bladet
                Set C = shBraST.Range("A:B").Find(what:=X, LookIn:=xlValues, LookAt:= _
                xlWhole, MatchCase:=True)
                On Error Resume Next
                rnBtoST = C.Offset(0, 4).Value                              'gå till BTO-pris (E-kolumnen)
    
        'söker i SO bladet
                Set C = shBraSO.Range("A:B").Find(what:=X, LookIn:=xlValues, LookAt:= _
                xlWhole, MatchCase:=True)
                On Error Resume Next
                rnBtoSO = C.Offset(0, 4).Value                              'gå till BTO-pris (E-kolumnen)
    
                rnBtoBr = WorksheetFunction.Min(rnBtoES, rnBtoST, rnBtoSO)  'lägsta priset

Hej!

Jag får inte koden att gå vidare med lägsta värdet i koden ovan.  Jag kan se under felsökning att jag får rätt värde från resp. blöadflik (rnBtoES, rnBTOST,rnBtoSO) men worksheetFunction.Min får inte fram rätt värde (rnBtoBr). Kan man inte kombinera Find-funktionen med Min Functionen?

 

/TH

Länk till kommentar
Dela på andra webbplatser

Jag kopierade in din MsgBoxar och får fram "Sant" ur dem och dessutom "rätt" värde ur resp. bladflik, men lika förbaskat så blir rbBtoBr "= tom..."

Länk till kommentar
Dela på andra webbplatser

Hmmm.... Satt och testade en massa igår kväll.

Vad händer i "Min-funktionen" om jag bara får träff i 2st av mina bladflikar?

Då kommer ju ett värde att vara "tomt" eller "0", och skulle ju kunna bli lägsta värdet.

Om det fungerar så hur sorterar man då ut den/dom "rnBTOES, rnBtoST, rnBTOSO" som har fått en träff (likan med ett värde >0)?

 

Hmmm....

Länk till kommentar
Dela på andra webbplatser

Hej tillbaka!

Jo, jag förstår....men tyvärr samma resultat!

Jag kan i felsökningen se att jag har värden (och rätt värden) på mina "rnBTOxx" både i resp. Find-snurra och även innanför paranteserna i Min-funktionen, men den returnerar "0"

Det verkar inte hjälpa med vad jag använder för variabler (har Variant på rnBtoxx och typ Double på Min-funktionens svar)

Allt ser så förbaskat rätt ut  tycker jag men Min-funktionen tolkar inte värdena rätt...

Länk till kommentar
Dela på andra webbplatser

Hmmm...

Jag har kanske hittat problemet.

Det verkar vara någon skum formatering på källbladet där jag hämtar mina värden.

Trycker jag in en rad manuellt och lägger in värden, så verkar också min-funktionen fungera.

Tittar jag på formateringen så ser det ju dock ut som "Tal" och det gör ingen skillnad om jag kör tal en gång till.

Vet inte riktigt vad det är för format då....

Länk till kommentar
Dela på andra webbplatser

Jo det var någon tokig formatering och det verkar ju som vba läser värdena på ett sätt och bevakning/felsökning på ett annat sött!

Suck!

 

Ok, då är ju frågan hur man undviker att få med en utebliven träff på en bladflik i worksheetfunction.min(A, B, C) där A, B,C är hämtade värden från olika bladfikar.

Om jag inte får in något värde på C så kommer ju min-funktionen att returnera "0" och det vill jag ju inte. Det ska ju vara lägsta av A & B i det fallet.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...