Gå til innhold

Anbefalte innlegg

Jeg har en annen tråd om oppbygging av maler i Word men prøver meg nå på en annen løsning som forhåpentligvis er "enklere"?

 

Jeg har en dialogboks hvor bruker fyller inn noen felt og velger en Avdeling. Når avdelingen er valgt ønsker jeg at noen andre variabler skal settet for avdelingen.

 

Tenker som følger:

 

txtAvdeling settes lik verdien som velges i dialogboksen.

 

Når dette er gjort så skal:

txtAdresse settes lik adresse for valg avdeling

txtSted settes lik stedsnavn for valgt avdeling

txtTelefon settes lik telefonnummer for valgt avdeling

 

Er det noen som kan hjelpe meg å lage et CB script for dette?

Lenke til kommentar
Videoannonse
Annonse

La oss bygge videre på det siste vi gjorde igår.

 

Lag en fil C:\Temp\Steder.txt, inneholdende tabulatordelt informasjon slik:

 

Sør	Oslo	Norge	12345
Vest	New York	USA	000273
Øst	Beijing	Kina	128

 

Døp om vedlagte fil fra Test.txt til Test.xls. Koden ligger i Userform1-modulen. Håper det hjelper deg i gang.

 

Beste hilsen Harald

Test.txt

Lenke til kommentar

Ja, det skal bare være å flytte userformen. Høyreklikk i VBeditor project explorer - Export file..., og så Importer i Word samme sted når du er i dokumentet du vil ha den. Hvis trøbbel er det bare å lage tilsvarende userform i Word og klippe-lime koden.

 

Pass på at dette ikke er VBscript men VBA -det gjør allverdens forskjell når du googler.

 

Beste hilseen Harald

Lenke til kommentar

Jeg prøvde å tilpasse denne til mine data i Word men får en kompileringsfeil:

"Methode or Data member not found"

AddItem blir markert!

 

Kan du se noen feil i denne koden?

Private Sub UserForm_Initialize()

Dim iFnum As Integer
Dim Linje As String
Dim Felt() As String
iFnum = FreeFile
Open "C:\Temp\Steder.txt" For Input As #iFnum
While Not EOF(iFnum)
	Line Input #iFnum, Linje
	Felt = Split(Linje, vbTab)
	On Error Resume Next
	Me.cboSelskap.AddItem Felt(0)
	Me.txtSAdr.AddItem Felt(1)
	Me.txtSPost.AddItem Felt(2)
	Me.txtSTlf.AddItem Felt(3)
Wend
Close #iFnum

' Fyll inn data 
txtForfatter = Application.UserName
txtDato = Format(Date, "dd.mm.yyyy")

End Sub

Endret av HiSpeed
Lenke til kommentar

Harald! Jeg prøver å lære litt mer om VBA og har derfor et par spm. til deg.

 

Hvorfor bruker du en "Listbox" og ikke en variabel?

Hvis det er mulig å bruker en variabel hvordan blir scriptet da?

Endret av HiSpeed
Lenke til kommentar
Hvorfor bruker du en "Listbox" og ikke en variabel?

Hvis det er mulig å bruker en variabel hvordan blir scriptet da?

Ok, nå er du på videregående. Du virket ikke helt klar til det. Jeg brukte Listbox fordi det er forståelig. Ett eller annet sted skal du lagre informasjonen og Listbox er i samme verden som comboen du bruker.

 

Det du er ute etter er en variabel som er f.eks. "et kontor". Sånt finnes ikke i VBA, du har strenger og heltall og datoer og sånt men ikke kontorer.

 

Det man kan gjøre da er å lage sin egen datatype, rimeligvis definert som Type, der du kan putte inn forskjellige navngitte variabler. Nyttig nok, men ganske døde greier.

 

Neste steg derfra, sånn jeg ville løst det, er å heller lage en klasse "Kontor". Klasser gjør og inneholder det samme som typer, men det er muligheter for makroer og events i alle ender. Så man lager en kontor-klasse, lager instanser av kontorer med forskjellige data og egenskaper, og samler disse i en Collection. Nå først er du inne i ordentlig objektorientert programmering, det er her ting får ordentlig struktur. (Og kall det ikke script. VBA er programmering.)

 

Jeg kan lage en demofil hvis du vil. Etterhvert. Jeg foreslår du bruker litt mer tid å userforms og kontroller og syntaks først. Klasser og collections krever såpass presisjon at pakka rundt ikke bør kreve så mye oppmerksomhet.

 

Beste hilsen Harald

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...