Minulle tuli vastaan Excel 2007 sovellus, joka laskee erilaisia lukuja eri asiakkaille. Kun menee Excelin Apuohjelmat -välilehdelle, on siellä alasvetolaatikko, jossa on eri asiakkat. Kun tuosta listasta valitsee asiakkaan, tuo sovellus esiin valitun asiakkaan tietoja.
Minun pitäisi nyt lisätä tuohon listalle uusi asiakas, mutta en löydä koodista mistään tuota asiakaslistaa? Osaisiko joku antaa vinkkiä, mistä voisin etsiä?
asiakaslista voi sijaita esim. piilotetulla välilehdellä, tai vaikka suoraan koodissa. koodeja pääset katselemaan excelin developer puolelta (tämä on normaalisti piilossa, saat tämän auki täppäämällä developer puolen päälle excelin asetuksista.)
Kiitos vastauksestasi groovyb! Minä olen katsonut koodin läpi kokonaan, enkä löydä sieltä mitään listaa asiakkaista. Löydän koodista createmenu subin, mutta siinä ei ole sitä varsinaista listaa asiakkaista. Tuossa subissa on myös: Location for menu data
Set MenuSheet = ThisWorkbook.Sheets("MenuSheet"). En ymmärrä mitä tämä tarkoittaa? VbaProjektissa on Taul1(MenuSheet), mutta siellä ei ole mitään koodia?
Moikka Mamma!
Voisit tsekata mitä taulun MenuSheet takaa löytyy esim. iskemällä Taul1:een komentopainikkeen ja sen taakse seuraavan koodin:
Sub Painike1_Napsauta() Dim solu Dim alue As Range Set alue = Sheets("MenuSheet").UsedRange For Each solu In alue MsgBox "rivi: " & solu.Row & " sarake: " & solu.Column & " arvo: " & solu.Value Next Set alue = Nothing End Sub
Mikäli näkyviin tulee alasvetovalikosta tuttuja arvoja niin lista löytyi. Nyt jos apuohjelmasi tyyppi on excel lisämakro ja se on suojaamaton niin voit lisätä uuden asiakastiedon vaihtamalla komentopainikkeen koodin esim. seuraavan mallin mukaiseksi (säätele tarpeesi mukaan):
Sub Painike1_Napsauta() Dim vrivi, vsarake vrivi = Sheets("MenuSheet").Cells.SpecialCells(xlCellTypeLastCell).Row vsarake = Sheets("MenuSheet").Cells.SpecialCells(xlCellTypeLastCell).Column ReDim uudet_asiakastiedot(1 To vsarake) As Variant For i = LBound(uudet_asiakastiedot) To UBound(uudet_asiakastiedot) Select Case i Case 1: uudet_asiakastiedot(i) = "mahdollinen sarakkeeseen 1 tuleva arvo" Case 2: uudet_asiakastiedot(i) = "mahdollinen sarakkeeseen 2 tuleva arvo" 'jne. End Select Next For i = 1 To vsarake 'esim. If Not IsEmpty(uudet_asiakastiedot(i)) Then Sheets("MenuSheet").Cells(vrivi + 1, i).Value = uudet_asiakastiedot(i) End If Next Erase uudet_asiakastiedot End Sub
Kun olet luonut haluamasi asiakastiedot niin poista nappi ja koodi ja tallenna projekti.
Kiitos tuhannesti neau33! Nyt löysin koodin, jossa on asikaslista ja pääsin lisäämään sinne uuden asiakkaan. Sinä olet nero!
Aihe on jo aika vanha, joten et voi enää vastata siihen.