Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


hämta data från flera kolumner i excel

Postades av 2004-11-25 23:40:16 - Jörgen Eliasson, i forum visual basic - allmänt, Tråden har 3 Kommentarer och lästs av 2949 personer

Jag håller på med ett lite "program" i excel som söker i en lista med +5000 produkter. Programmet består av ett blad med alla produkter i en lista och ett sammanfattningsblad där alla beräkningar sker. På sammanfattningsbladet skriver man in namnet på sin produkt och en sökning startar och letar reda på den produkten i listan och det sker en massa beräkningar med de data som är associerade med produkten. Just nu är det 25st kolumner med data till varje produkt.

Så som jag har löst det så gör programmet 25st sökningar för varje produkt man matar in, en för varje kolumn. Knappast snabbt eller så snyggt.

Nu undrar jag om ngn av er kan en lösning så att när sökningen har skett och man har hittat sin produkt så kan 25st beräkningar ske och sedan klistras in i på sammanfattningsbladet eller något liknande. Det jag är ute efter är att det bara skall ske en sökning per produkt. Sen om datan från listan bara kopieras eller om beräkningarna kan ske innan värdena kopieras in på sammanfattningsbladet spelar mindre roll.

Min sökning ser ut på detta sätt om det är till hjälp att bygga vidare på:

Function getDimention(vTum)
On Error Resume Next
Dim cSource As Range
Dim cData As Range
Dim vDimention As Variant

If vTum.Value <> "" Then
For Each cSource In Worksheets("DATABAS").Range("B3:B5680").Cells
If cSource.Value = "" Then Exit For
If cSource.Value = vTum.Offset(0, -1).Value Then
vVarde = CDec(cSource.Offset(0, 2) * vTum.Value / 100)
Exit For
End If
Next cSource
Else
vVarde = ""
End If
getDimention = vVarde
End Function


Svara

Sv: hämta data från flera kolumner i excel

Postades av 2004-11-26 00:21:19 - Niklas Jansson

Till att börja med är det troligtvis mycket lättare att använda excels inbyggda funktion, find.
Förklara lite bättre hur du vill att programmet skall fungera?
Vill du ha formler, eller ska du uppdatera en hel sida.

Rent spontant låter det som att du vill använda en HLOOKUP, eller MATCH-formel.

Det finns ofta bättre lösningar än VBA, som tenderar att bli långsamma och klumpiga.


Svara

Sv: hämta data från flera kolumner i excel

Postades av 2004-11-26 08:31:20 - Jörgen Eliasson

Ok, skall se om jag kan förklara lite bättre, jag har ordnat till det på följande sätt:

På sammanställningssidan skriver man i första kolumnen tex "skruv", då ploppar det upp en rullista (mha VB) med alla produkter som innehåller det ordet och man väljer den man är ute efter. I nästa kolumn skriver man in en variabel som alla beräkningar sedan skall baseras på. När detta värde är ifyllt så startar då mina 25st sökningar och beräkningarna returneras till kolumn 3-28. Anropningen kör jag så här "=getDimention(B2)" osv. för varje funktion.
Sen fortsätter det så att man på nästa rad matar in nästa produkt man är ute efter. Typ att man gör en inköpslista med alla produkter man vill ha med en massa data presenterade.

Och beräkningarna skulle inte behöva ske i VB utan det kan man ju göra när datan har hämtats in i Excel istället.

Men det är kanske som du säger att det finns en bättre funktion direkt i excel än att gå omvägen via VB. Skall kolla lite på detta idag. Fast det vore trevligt med en VB-lösning med.


Svara

Sv: hämta data från flera kolumner i excel

Postades av 2004-11-26 21:16:51 - Niklas Jansson

Vi börjar bakifrån:
<b>>Fast det vore trevligt med en VB-lösning med.</b>
Av erfarenhet säger jag: Tänk inte så!
VB-lösningar finns <b>alltid</b>, men är i praktiken långsammare och krångligare än rena excelformler, i mer än 90% av fallen.

Tyvärr så har du gett ungefär all information utom just den man behöver... =)

Nåväl, låt mig se om jag har förstått en del rätt;
1. Du har en "databassida", där du har en lista på något sätt?
2. Du har en "presentationssida", där du vill kunna välja en produkt på ett eller annat sätt?
Rätt?

Sen skriver du "I nästa kolumn skriver man in en variabel som alla beräkningar sedan skall baseras på." Innebär det att du har flera olika typer av värden för varje produkt, typ olika skruvstorlekar, i din databas?
Hur använder du det värdet sen?
Tar du typ 60mm * 30 öre/mm, eller slår du upp värden från databasen på något sätt?

Som det ser ut i koden så verkar det ju som om du letar i en lista med olika tumstorlekar, tittar i cellen två steg till höger om den hittade efter något slags värde, multiplicerar det med antalet tum och trixar lite?

Då skulle du kunna börja med att lägga till en kolumn i din "databas", där du redan gör hela den beräkningen. Du har tum-antalen i kolumn B, och något värde i kolumn D?
Då gör du i kolumn E (eller närmast lediga), där du skriver =B2*D2/100, typ.
På så sätt behöver man inte göra den beräkningen någon annanstans.

I dina celler på presentationsbladet kör du sen med HLOOKUP.
"Datarange" skall vara hela din "databas", "Search value" skall vara antalet tum, och "column offset" skall vara antalet kolumner mellan B och den du har det beräknade värdet i.

Jag kan nästan garantera att det är det bästa sättet att lösa det på, på alla sätt. Effektivast, lättast och mest lättläst. Återkom om du har frågor.

PS. För övrigt heter det väl Dimension? =)


Svara

Nyligen

  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 888
27 965
271 777
6 866
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies