MollanMedlem sedan nov. 20078 inlägg Jag har en tabell med olika skruvdimensioner som har respektive monteringsdata. Hur ska jag på enklast möjliga sätt kunna plock ut all data om en viss utvald skuv och kunna använda värdena i diverse beräkningar?
Jag har skapat en kombinationsruta där jag väljer skruv, cellänken skriver då ut en siffra. Därifrån (en annan cell)skrev jag en om-sats: =OM($H$26=1;B24;OM($H$26=2;B25;OM($H$26=3;B26;OM($H$26=4;B27))))osv... (H26 är min cellänk och B24-B27 är monteringsdata för den skruv jag hade valt) Denna prosedur ger mig då en monteringsdata om skruven, blir tvungen att göra detta flera gånger eftersom jag har många olika data om skruven)...........Hänger ni med? :birp
Den här lösningen känns inte speciellt säker och proffsig tycker jag. :q
Jag skulle vilja plocka all data direkt ur "tabellen" istället för att "skriva över den" i en cell och använda den därifrån, någon som vet bättre än mig? :)
inspiroMedlem sedan sep. 2005673 inlägg Jag tror du behöver ge dig in på lite VBA-äventyr för att åstadkomma det du vill, där du med programkod kan loopa igenom din tabell och plocka fram rätt värden. Kan du VB?
Tryck alt+F11 och börja koda. :)
MollanMedlem sedan nov. 20078 inlägg Mina gamla kunskaper i VBA räcker nog inte att lösa detta problem. Men jag tar gärna emot hjälp :)
inspiroMedlem sedan sep. 2005673 inlägg Om du har ett id för vald skruv i din tabell så kan du stega igenom den. Hämta tabellen med range-objektet och gör en for each där du för varje rad i tabellen med en if-sats kollar om ditt id stämmer överens. Typ nåt sånt här (pseudo-kod, kan inte vb):
Dim r as Range
Dim n as Long
Dim arr(10) as Array
set r = Range("din tabell") ' ge tabellen ett namn så är det enklare att hämta den
n = 0
For Each row in r
' om raden innehåller skrivens id
if row.column(id) = skruv_id
' lägg infon i en array
arr(n) = row.column(info)
' plussa på med 1 så att du får en ny pos i arrayen nästa gång
n = n + 1
End if
Next
MollanMedlem sedan nov. 20078 inlägg Hur namnger jag en tabell?
Kan jag upprepa "arr(n) = row.column(info)" då jag vill ha flera olika värden om den utvalda skruven?
etc
arr(1) = row.column(G1)
arr(2) = row.column(G2)
arr(3) = row.column(G3) osv.
Hängde inte riktigt med på vad du vill göra. Men detaljer angående dina formler:
Mollan skrev:
....skrev jag en om-sats: =OM($H$26=1;B24;OM($H$26=2;B25;OM($H$26=3;B26;OM($H$26=4;B27))))...
Just den där saken kan du lika gärna göra med Välj()
=VÄLJ($H$26;B24;B25;B26;B27)
Eller förskjutning om det är helt regelbundet
=FÖRSKJUTNING(B24;$H$26-1;0;1;1)
Mollan skrev:
...Jag skulle vilja plocka all data direkt ur "tabellen"...
Hur är dina data uppställda egentligen? Enstaka data hämtar du enkelt med Letarad, passa/index eller liknande. Du kanske lika gärna kan använda "databasformlerna". Typ DHÄMTA osv.
Men de klarar bara en sak i taget.
Kan du bifoga en förenklad exempel-exel-fil där det framgår vad du vill göra och hur dina data står? Det blir mycket enklare