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 SubMikä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 SubKun 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.