Gå til innhold

Excel celler inn i VB


Anbefalte innlegg

Heisann

 

Driver med et nytt prossjekt nå og trenger litt hjelp.

Saken er den at i begynnelsen av programmet skal man velge/åpne en excel fil og de forskjellige cellene inne i excel filen skal brukes i forskjellige settinger inne i programmet.

 

Planen er at det skal bli et program som kan hente bruker data fra excel fil og lage diverse AD kommandoer i windows 2003 server.

 

Noen som har noen tips?

Lenke til kommentar
Videoannonse
Annonse

Legg til referanse til COM->Microsoft Excel X.X Object Library og begynn å kode.

 

Trenger du å vite hvordan du koder i Excel så bruk Macro recording inni Excel til å finne ut av ting.

 

Ellers er det masse av info på nettet om hvordan kode mot Excel fra VB.

Google: vb excel

 

Kan ikke svare stort mer når du ikke spør noe konkret.

Lenke til kommentar

Du har ikke jobbet i bedrift du? :)

 

Mange ansatte har lite IT kunnskap og mange sverger til Excel til å løse absolutt alt. Så når noen kommer med krav på hva de ønsker, så pleier de å få det. De ønsker gjerne å vedlikeholde noe i Excel for "det er så enkelt".

 

Sånn er det bare.

Lenke til kommentar

For å kverrulere:

Pluss med Excel. GUI er allerede klar.

 

Minus med tekst + XML. Noen må sikkert lage en liten frontend GUI på den mtp vedlikehold (ihvertfall om det skal foregå mye vedlikehold der data hentes fra andre større lister). Lime inn en bruker liste fra her, lime inn en annen liste fra der, samle det sammen i en konfig.

Lenke til kommentar

Poenget med excel er at det er enkelt å sette opp forskjellige brukere med navn/etternavn/epost/osv osv i kollonner og rader i excel.

 

XML har jeg ikke vært borti så det blir litt for innviklet pr nå.

 

Jeg har sett et VBS script som gjør akuratt det jeg er ute etter, der blir amn presentert med en boks som man skriver inn banen til excel filen, så gjør scriptet resten. Excel filen må da være laget på en bestemt måte.

 

Problemet her er at jeg ikke skjønte noe av koden og jeg vil ha dette inn i et VB05 programm for senere kunne intigrere dette i et annet programm jeg laget i fjord.

 

:)

Lenke til kommentar

Prøv dette:

           'Setter CultureInfo slik at Excel og programmet er enige
           Dim oldCI As System.Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture
           System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")


           Dim filename as String = "C:\Test.xls"

           'Lager objekter for Excel, arbeidsbook og selve arket
           Dim xl As Object
           Dim book As Object
           Dim sheet As Object

           'Bruker eksisterende Excel hvis det kjører, eller starter hvis ikke
           Try
               xl = GetObject(Nothing, "Excel.Application")
           Catch
               xl = CreateObject("Excel.Application")
           End Try

           'Skjuler Excel, så slipper brukeren se at Excel plutselig popper opp. En god ide å vise ved debugging...
           xl.Visible = False

           'Åpner selve Excel-filen
           book = xl.Workbooks.Open(filename)

           'Velger et regneark
           sheet = book.Sheets("Sheet1")       'eller book.Sheets(1) om du vil
           sheet.Activate()

           'Henter ut en verdi
           Dim sngUthentetVerdi as Single = sheet.Cells(1, 1).Value 'Dette kan seff kjøres i en løkke. :)


           'Avslutter
           book.Close()
           xl.Quit()

           sheet = Nothing
           book = Nothing
           xl = Nothing

           System.Threading.Thread.CurrentThread.CurrentCulture = oldCI

Lenke til kommentar

Prøvde det, men siden jeg bruker norsk excel så oversatte jeg sheets til ark og book til bok.

 

Men uansett så stopper den ved:

 

'Velger et regneark
          sheet = book.Sheets("Sheet1")       'eller book.Sheets(1) om du vil

 

Jeg har en test fil liggende på C:\ også.

Lenke til kommentar

"Sheet1" er navnet på selve arket og må matche det (eller et av dem) som er i arbeidsboka. Evt kan du bruke bare nummer (som det står i kommentaren). :)

 

Hva du kaller objektene diner har (book eller bok) har absolutt ingenting å si.

Endret av moskus
Lenke til kommentar

Nå begynner det å ligne på noe her :D

Nå har jeg fått til at programmet henter ut info fra celler i excel og også at jeg kan bruke programmet til å skrive inn i celler i excel :D ganske coolt.

 

Det jeg trenger nå er en løkke som gjør at når første linje i excel arket er hentet ut (fornavn, etternavn, epost osv osv i hver sine celler) så hopper den til neste rad og fortsetter helt til det ikke er flere rader igjen det står noe i.

 

si eks at infoen om en bruker står i A1,A2,A3,A4,A5 og neste står i B1,B2,B3,B4,B5 så skal den hoppe ned og fortsette på B når den er ferdig med A

Lenke til kommentar
Det jeg trenger nå er en løkke som gjør at når første linje i excel arket er hentet ut (fornavn, etternavn, epost osv osv i hver sine celler) så hopper den til neste rad og fortsetter helt til det ikke er flere rader igjen det står noe i.

 

si eks at infoen om en bruker står i A1,A2,A3,A4,A5 og neste står i B1,B2,B3,B4,B5 så skal den hoppe ned og fortsette på B når den er ferdig med A

8427965[/snapback]

Det der burde du nesten være i stand til å skrive selv, når du har kommet såpass langt... ;)

 

Men uansett, kjapt gjort kan det jo gjøres slik:

Dim navn(10,1) as String

'Celler A1 til A10 inneholder fornavn
'Celler B1 til B10 inneholder etternavn
For i as integer = 1 to 10
     'Cells fungerer slik: Cells(radnummer, kolonnenummer). Husk å legg til ".Value" bak
     navn(i,0) = sheet.Cells(i, 1).Value
     navn(i,1) = sheet.Cells(i, 2).Value
Next

 

Det finnes maaange måter å bygge opp den for-løkken på. Velg den som er mest hensiktsmessig... ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...