/ Forside / Teknologi / Administrative / MS-Office / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Array + Listbox
Fra : Tue Hellstern


Dato : 24-11-02 11:06

Hej NG,

Jeg har et Array med to dimensioner, som jeg godt vil have lagt over i en
Listbox, så første oplysning(fornavn) står i første kolonne og anden
oplysning(efternavn) står i anden kolonne.



Når jeg kun har en dimension har jeg brugt; cboNavne.List = ArrayNavne

Hvilket virker fint. Jeg har set lidt i hjælpen og fundet; cboNavne.Column =
ArrayNavne ()

som skulle gøre noget tilsvarende, hvilket jeg dog ikke helt forstår
Jeg har sat listbox´en til at have 2 kolonner og det virker som om der kun
bliver fyldt data i kolonne 2 ? Hvordan kan jeg gøre dette?


Hilsen
Tue



PS. Jeg har set flere indlæg i NG der siger at man evt. kunne bruge en Grid
kontrol, men skulle det ikke være muligt med en Listbox?



 
 
pre (24-11-2002)
Kommentar
Fra : pre


Dato : 24-11-02 13:35

Brug et For-Each loop hvor f. eks variablen i er fortløbende mens j
skifter 1 og 2.
Brug Debug.Print "Skriver række " & i & "Kolonne " & j
aryNavne(i,,j) = Fornavn
Debug.Print "Skriver række " & i & "Kolonne " & j + 1
aryNavne (i, j+1) = Efternavn
next

lstNavne() = aryNavne

Debug linierne er selvf. valgfrie men nyttige i starten.

--

mvh
© pre 2002


"Tue Hellstern" <info@f1-support.dk> wrote in message
news:3de0a45f$0$660$edfadb0f@dread12.news.tele.dk...
> Hej NG,
>
> Jeg har et Array med to dimensioner, som jeg godt vil have lagt over i
en
> Listbox, så første oplysning(fornavn) står i første kolonne og anden
> oplysning(efternavn) står i anden kolonne.
>
>
>
> Når jeg kun har en dimension har jeg brugt; cboNavne.List = ArrayNavne
>
> Hvilket virker fint. Jeg har set lidt i hjælpen og fundet;
cboNavne.Column =
> ArrayNavne ()
>
> som skulle gøre noget tilsvarende, hvilket jeg dog ikke helt forstår

> Jeg har sat listbox´en til at have 2 kolonner og det virker som om der
kun
> bliver fyldt data i kolonne 2 ? Hvordan kan jeg gøre dette?
>
>
> Hilsen
> Tue
>
>
>
> PS. Jeg har set flere indlæg i NG der siger at man evt. kunne bruge en
Grid
> kontrol, men skulle det ikke være muligt med en Listbox?
>
>



Tue Hellstern (24-11-2002)
Kommentar
Fra : Tue Hellstern


Dato : 24-11-02 14:46

Hej pre,
Der er noget helt grundlæggende jeg ikke forstår eller også har jeg ikke
formuleret mig godt nok.



> Brug et For-Each loop hvor f. eks variablen i er fortløbende mens j
> skifter 1 og 2.
> Brug Debug.Print "Skriver række " & i & "Kolonne " & j
> aryNavne(i,,j) = Fornavn
> Debug.Print "Skriver række " & i & "Kolonne " & j + 1
> aryNavne (i, j+1) = Efternavn
> next
>
> lstNavne() = aryNavne

Jeg har mine data, fornavn og efternavn, inde i mit array, de skal over i
listbox'en. Det er denne overførsel jeg ikke kan få til at virke, som
skrevet så virker det fint så længe der er tale om et array med kun en
dimension. Hvis jeg ikke er helt stået af så viser den kode du har sendt
hvordan man kommer data ind i listbox'en, eller hvad?
Jeg har så prøvet med; lstNavne() = aryNavne
men det giver en fejl.



Tue



pre (24-11-2002)
Kommentar
Fra : pre


Dato : 24-11-02 19:55

Måske jeg skulle ha´ defineret lidt mere mht. den oprindelige liste men
jeg havde ikket klart billede af den. Hvis tabellen er dimensioneret så
mangler bare linien
For each xxx in xxx´s
Fornavn = xxx(Fornavn)
Efternavn = xxx(Efternavn)
o.v.v.

Brug som jeg at rulle de første linier vha. F8 og stop rutinen hvis
printet ikke virker. Med F8 har du mulighed for at se indholdet af de
enkelte variabler EFTER de er aktive.

(Det tog mig lang tid at lave den oprindelige rutine som jeg citerer
fra, listbokse hører ikke til mit daglige område så vær opmærksom på
hvad andre evt. foreslå.)
"Tue Hellstern" <info@f1-support.dk> wrote in message
news:3de0d7e7$0$637$edfadb0f@dread12.news.tele.dk...
> Hej pre,
> Der er noget helt grundlæggende jeg ikke forstår eller også har jeg
ikke
> formuleret mig godt nok.
>
>
>
> > Brug et For-Each loop hvor f. eks variablen i er fortløbende mens j
> > skifter 1 og 2.
> > Brug Debug.Print "Skriver række " & i & "Kolonne " & j
> > aryNavne(i,,j) = Fornavn
> > Debug.Print "Skriver række " & i & "Kolonne " & j + 1
> > aryNavne (i, j+1) = Efternavn
> > next
> >
> > lstNavne() = aryNavne
>
> Jeg har mine data, fornavn og efternavn, inde i mit array, de skal
over i
> listbox'en. Det er denne overførsel jeg ikke kan få til at virke, som
> skrevet så virker det fint så længe der er tale om et array med kun en
> dimension. Hvis jeg ikke er helt stået af så viser den kode du har
sendt
> hvordan man kommer data ind i listbox'en, eller hvad?
> Jeg har så prøvet med; lstNavne() = aryNavne
> men det giver en fejl.
>
>
>
> Tue
>
>



Leo Heuser (24-11-2002)
Kommentar
Fra : Leo Heuser


Dato : 24-11-02 23:26

Hej Tue


"Tue Hellstern" <info@f1-support.dk> skrev i en meddelelse
news:3de0a45f$0$660$edfadb0f@dread12.news.tele.dk...
> Hej NG,
>
> Jeg har et Array med to dimensioner, som jeg godt vil have lagt over i en
> Listbox, så første oplysning(fornavn) står i første kolonne og anden
> oplysning(efternavn) står i anden kolonne.
>
>
>
> Når jeg kun har en dimension har jeg brugt; cboNavne.List = ArrayNavne
>
> Hvilket virker fint. Jeg har set lidt i hjælpen og fundet; cboNavne.Column
=
> ArrayNavne ()

Når du bruger .Column bliver arrayet transponeret, dvs. rækker bliver til
kolonner og omvendt. Den bruges fx, hvis du har noget data stående
i A1:J1 og godt vil se det i en kolonne i listboksen.

>
> som skulle gøre noget tilsvarende, hvilket jeg dog ikke helt forstår
> Jeg har sat listbox´en til at have 2 kolonner og det virker som om der kun
> bliver fyldt data i kolonne 2 ? Hvordan kan jeg gøre dette?

Når du har sat antal kolonner til 2, skal det også virke, hvis du bruger
cboNavne.List = ArrayNavne, hvor ArrayNavne har 2 dimensioner.

Hvilket program er der tale om og hvilken version?
Hvor står dine navne, inden de bliver lagt i arrayet?
Hvordan ser din kode ud?

--
Med venlig hilsen
Leo Heuser

>
>
> Hilsen
> Tue
>
>
>
> PS. Jeg har set flere indlæg i NG der siger at man evt. kunne bruge en
Grid
> kontrol, men skulle det ikke være muligt med en Listbox?
>
>





Tue Hellstern (25-11-2002)
Kommentar
Fra : Tue Hellstern


Dato : 25-11-02 07:53

Hej Leo

> Når du bruger .Column bliver arrayet transponeret, dvs. rækker bliver til
> kolonner og omvendt. Den bruges fx, hvis du har noget data stående
> i A1:J1 og godt vil se det i en kolonne i listboksen.
Det havde jeg også læst mig til i hjælpen, men jeg syntes bare ikke det var
det der skete. Jeg fik alle mine filnavne i kollone 2 ???

> Når du har sat antal kolonner til 2, skal det også virke, hvis du bruger
> cboNavne.List = ArrayNavne, hvor ArrayNavne har 2 dimensioner.
Har sat det til 2 kolonner, men det virker ikke

> Hvilket program er der tale om og hvilken version?
Word XP

> Hvor står dine navne, inden de bliver lagt i arrayet?
> Hvordan ser din kode ud?

Private Sub cmdHentFiler_Click()
'Variabler
Dim varFileArray() As Variant 'Array
Dim varFileCount As Integer
Dim varFileName As String
Dim i As Integer
Dim varSti As String

varFileCount = 0
varFileName = Dir(txtSti.Text & txtFiltype.Text)

'Find alle filer
Do While varFileName <> ""
varFileCount = varFileCount + 1
ReDim Preserve varFileArray(2, 1 To varFileCount)
varFileArray(1, varFileCount) = varFileName
varFileArray(2, varFileCount) = FileLen(txtSti & varFileName)
varFileName = Dir()
Loop

'Tilføj til Listboksen
lstFiler.Clear 'Nulstil listboksen
lstFiler.List = varFileArray 'Indlæs data

End Sub

Når jeg afvikler koden får jeg to filnavne i hver sin kolonne og to
størrelser i hversin kolonne??

Tue



Leo Heuser (25-11-2002)
Kommentar
Fra : Leo Heuser


Dato : 25-11-02 14:24

Hej Tue


"Tue Hellstern" <info@f1-support.dk> skrev i en meddelelse
news:3de20f96$0$661$edfadb0f@dread12.news.tele.dk...
> Hej Leo
>
> > Når du bruger .Column bliver arrayet transponeret, dvs. rækker bliver
til
> > kolonner og omvendt. Den bruges fx, hvis du har noget data stående
> > i A1:J1 og godt vil se det i en kolonne i listboksen.
> Det havde jeg også læst mig til i hjælpen, men jeg syntes bare ikke det
var
> det der skete. Jeg fik alle mine filnavne i kollone 2 ???
>
> > Når du har sat antal kolonner til 2, skal det også virke, hvis du bruger
> > cboNavne.List = ArrayNavne, hvor ArrayNavne har 2 dimensioner.
> Har sat det til 2 kolonner, men det virker ikke
>
> > Hvilket program er der tale om og hvilken version?
> Word XP
>
> > Hvor står dine navne, inden de bliver lagt i arrayet?
> > Hvordan ser din kode ud?
>
> Private Sub cmdHentFiler_Click()
> 'Variabler
> Dim varFileArray() As Variant 'Array
> Dim varFileCount As Integer
> Dim varFileName As String
> Dim i As Integer
> Dim varSti As String
>
> varFileCount = 0
> varFileName = Dir(txtSti.Text & txtFiltype.Text)
>
> 'Find alle filer
> Do While varFileName <> ""
> varFileCount = varFileCount + 1
> ReDim Preserve varFileArray(2, 1 To varFileCount)
> varFileArray(1, varFileCount) = varFileName
> varFileArray(2, varFileCount) = FileLen(txtSti & varFileName)
> varFileName = Dir()
> Loop
>
> 'Tilføj til Listboksen
> lstFiler.Clear 'Nulstil listboksen
> lstFiler.List = varFileArray 'Indlæs data
>
> End Sub
>
> Når jeg afvikler koden får jeg to filnavne i hver sin kolonne og to
> størrelser i hversin kolonne??
>
Hvis du mener:

Filnavn 1 Filnavn 2
Størrelse 1 Størrelse 2

så er det faktisk også det, du beder om
2 kolonner og filnavne i (1,1), (1,2), (1,3) osv.
samt størrelser i (2,1), (2,2), (2,3) osv.

Hvis jeg kører koden med rettelsen
lstFiler.Column = varFileArray
virker det fint i Word 2000, når jeg har
sat ColumnCount til 2.

For en ordens skyld bør du også rette
ReDim Preserve varFileArray(2, 1 To varFileCount)
til
ReDim Preserve varFileArray(1 to 2, 1 To varFileCount)

Jeg har ikke Word 2002 installeret, så jeg har ikke mulighed
for at teste koden i denne.

---
Med venlig hilsen
Leo Heuser








Tue Hellstern (25-11-2002)
Kommentar
Fra : Tue Hellstern


Dato : 25-11-02 16:13

Hej Leo
Nu virker det også hos mig, jeg tror at jeg har fået prøvet så mange
forskellige muligheder at jeg ikke hvidste hvad der var hvad.
Hvad er forskellen på at bruge:
ReDim Preserve varFileArray(2, 1 To varFileCount)
tfrem for
ReDim Preserve varFileArray(1 to 2, 1 To varFileCount)
Hvis jeg har forstået det rigtig så er det kun den sidste kollone af et
array der kan ændres ved brugen af Preserve, så der sker vel ikke nogen
ændring af den første parameter, eller ????
Mange tak for hjælpen
Hilsen
Tue



Leo Heuser (25-11-2002)
Kommentar
Fra : Leo Heuser


Dato : 25-11-02 19:27

Velbekomme, Tue.

Hvis du ikke starter i deklarationsdelen med
Option Base 1
vil dit array starte med laveste grænse 0 (nul),
dvs, når du skriver
varFileArray(2, 1 To varFileCount)
vil første dimension indeholde *3* tal
nemlig 0,1 og 2, og da du ikke bruger 0, er det
bedst at dimensionere med
varFileArray(1 to 2, 1 To varFileCount).

Med hensyn til ændringen af sidste dimension
har du fuldstændig ret.

--
Med venlig hilsen
Leo Heuser


"Tue Hellstern" <info@f1-support.dk> skrev i en meddelelse
news:3de23dcb$0$609$edfadb0f@dread12.news.tele.dk...
> Hej Leo
> Nu virker det også hos mig, jeg tror at jeg har fået prøvet så mange
> forskellige muligheder at jeg ikke hvidste hvad der var hvad.
> Hvad er forskellen på at bruge:
> ReDim Preserve varFileArray(2, 1 To varFileCount)
> tfrem for
> ReDim Preserve varFileArray(1 to 2, 1 To varFileCount)
> Hvis jeg har forstået det rigtig så er det kun den sidste kollone af et
> array der kan ændres ved brugen af Preserve, så der sker vel ikke nogen
> ændring af den første parameter, eller ????
> Mange tak for hjælpen
> Hilsen
> Tue
>
>





Tue Hellstern (25-11-2002)
Kommentar
Fra : Tue Hellstern


Dato : 25-11-02 20:19

Hej Leo

> Hvis du ikke starter i deklarationsdelen med
> Option Base 1
> vil dit array starte med laveste grænse 0 (nul),
> dvs, når du skriver
> varFileArray(2, 1 To varFileCount)
> vil første dimension indeholde *3* tal
> nemlig 0,1 og 2, og da du ikke bruger 0, er det
> bedst at dimensionere med
> varFileArray(1 to 2, 1 To varFileCount).

Det kan meget vel være årsagen til at jeg ikke kunne få det til at virke,
jeg havde jo kun 2 kolonner med der var 3 kolonner i mit Array, så der var
ikke noget data i den ene kolonne.
Mange tak for forklaringen.
Hilsen
Tue



Leo Heuser (25-11-2002)
Kommentar
Fra : Leo Heuser


Dato : 25-11-02 20:39

Velbekomme, Tue.

> Det kan meget vel være årsagen til at jeg ikke kunne få det til at virke,
> jeg havde jo kun 2 kolonner med der var 3 kolonner i mit Array, så der var
> ikke noget data i den ene kolonne.
> Mange tak for forklaringen.
> Hilsen
> Tue
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste