Avatar billede fynbo Nybegynder
23. november 2004 - 10:05 Der er 21 kommentarer og
2 løsninger

Køre liste igennem i excel og finde data

Hej,

Jeg har et regneark i Acces, hvor jeg skal bruge det tal, som står i den nedeste udfyldte celle i række G. Denne celle er variabel fra ark til ark.

Hvordan laver man en løkke, som kører hele rækken igennem, indtil den finder en tom celle, og tager værdien fra cellen ovenover.
Avatar billede martin_moth Mester
23. november 2004 - 11:32 #1
Mon ikke du mener at du har en tabel i Access?
Eller mener du et regneark i Excel?
Og mener du ikke KOLONNE G, ikke række?

Dit spørgsmål, løst i Excel, der finder den sidste udfyldte celle i kolonne G:

    Range("G1").Select
    Selection.End(xlDown).Select

Du kan også gøre det med et loop, men ovenstående er lettere. Vil du hellere have en løsning med et loop?
Avatar billede fynbo Nybegynder
23. november 2004 - 11:59 #2
hvordan henter jeg så det tekst der står i den celle?
Avatar billede martin_moth Mester
23. november 2004 - 12:40 #3
Prøv at svare på de første 3 spørgsmål først, så vi kan se om vi er enige om hvad du spørger om.

Men ellers:

MsgBox ActiveCell.Value
Avatar billede fynbo Nybegynder
23. november 2004 - 13:07 #4
regneark i excel og mente kolonne g.

Før skrev den SAND, nu skriver den er tomt felt.

Skriver lige koden

Sub Udfyld()

Dim wsSheet As Worksheet
Dim i As Integer
i = 1

    Sheets.Add
    Sheets(1).Name = "Resultat"
   
    For Each wsSheet In Worksheets
        If wsSheet.Name <> "Resultat" Then
            Sheets("Resultat").Range("A" & i) = wsSheet.Name
            Range("G1").Select
            Dim tekst As String
            Selection.End(xlDown).Select
            Sheets("Resultat").Range("B" & i) = ActiveCell.Value
            i = i + 1
        End If
    Next wsSheet
    Sheets("Resultat").Range("A1").Select


End Sub
Avatar billede martin_moth Mester
23. november 2004 - 13:28 #5
Nu skriver hvad sand hvor og hvornår?

Prøv at forklar lidt bedre...

Du Dim'mer en variabel "tekst" en hel masse gange (inde i FOR-løkken), er det ikke en fejl? Du bruger i øvrigt ikke variablen til noget
Avatar billede fynbo Nybegynder
23. november 2004 - 13:31 #6
Jo, det er en fejl.

Da jeg kørte eksemplet første gang, udfyldte den hele Kolonne B i arket "Resultat" med SAND.

Da jeg så rettede

Sheets("Resultat").Range("B" & i) = Selection.End(xlDown).Select

til

Sheets("Resultat").Range("B" & i) = ActiveCell.Value

skriver den intet
Avatar billede martin_moth Mester
23. november 2004 - 14:06 #7
Har du rettet fra

Sheets("Resultat").Range("B" & i) = Selection.End(xlDown).Select

til

Sheets("Resultat").Range("B" & i) = ActiveCell.Value


???

Du skal have begge linier med, som du selv har vist i koden 13:07:34

Og så skal du nok have styr på hvad der er aktivt, når du bruger kode som ActiveCell
Avatar billede fynbo Nybegynder
23. november 2004 - 14:15 #8
Denne kode virker, bortset fra, er der kun ét tal i kolonne G, så finder den ingen tal. Hvorfor ikke?
Sub ArbejdernesLandsbank()
'
' ArbejdernesLandsbank Makro
' Makro indspillet 23-11-2004 af Christian Fynbo
Dim wsSheet As Worksheet
Dim i As Integer
i = 1

    Sheets.Add
    Sheets(1).Name = "Resultat"
   
    For Each wsSheet In Worksheets
        If wsSheet.Name <> "Resultat" Then
            Sheets("Resultat").Range("A" & i) = wsSheet.Name
            wsSheet.Select
            wsSheet.Range("G3").Select
            Selection.End(xlDown).Select
            Sheets("Resultat").Range("B" & i) = ActiveCell.Value
            i = i + 1
        End If
    Next wsSheet
    Sheets("Resultat").Select


End Sub
Avatar billede fynbo Nybegynder
23. november 2004 - 14:17 #9
Kolonne G ser sådan ud:

1 Belob
2
3 323,23
4 323,23
5 532,33
232323
Avatar billede martin_moth Mester
23. november 2004 - 15:05 #10
Først taler du om Access mens du mener excel
Og om rækker når du mener kolonner
Og så skriver at der kun er ET tal i kolonne G og derfor virker det ikke - men viser så, at der står mange flere tal i kolonne G

Jeg tror jeg springer fra...
Avatar billede martin_moth Mester
23. november 2004 - 15:06 #11
Bemærk at du nu skriver G3 og ikke G1. Men det har du sikekrt en god forklaring på...
Avatar billede fynbo Nybegynder
23. november 2004 - 15:22 #12
Ja, der er Excel.

Der er ca. 60 ark med en række indbetalinger. Jeg skal ha summen af alle indbetalinger fra hvert art. Det er det sidste tal i Kolonne G. I nogle ark  er der mange indbetalinger, der virker den fint. I andre ark er der kun én eneste indbetaling, der fungerer systemet ikke. Grunden til at jeg har skrevet G3 og ikke G1, er at ellers ville den stoppe efter overskriften i Kolonne G, som er Beløb.
Avatar billede martin_moth Mester
23. november 2004 - 15:38 #13
ok
Avatar billede fynbo Nybegynder
23. november 2004 - 15:41 #14
Ved du så hvorfor at den ikke fungere når der kun er ét tal?
Avatar billede martin_moth Mester
23. november 2004 - 16:25 #15
Ja - du skal starte i G2, ikke i G3!!!
Avatar billede martin_moth Mester
23. november 2004 - 17:04 #16
Koden:

wsSheet.Range("G2").Select  '< Bemærk G2, ikke G3
Selection.End(xlDown).Select

svarer til at stille sig i cellen G2, holde Ctrl nede og trykke pil ned. Derved bliver sidste celle i kolonne G valgt - er der kun et tal (der er i celle G3) vil det tal blive valgt. Er der slet ingen tal, bliver den sidste celle i kolonne G valgt - og den er tom...

Over & out, Martin
Avatar billede bak Forsker
23. november 2004 - 20:00 #17
prøv denne

Sub ArbejdernesLandsbank()
'
' ArbejdernesLandsbank Makro
' Makro indspillet 23-11-2004 af Christian Fynbo
Dim wsSheet As Worksheet
Dim i As Integer
Dim rng As Range
Dim sh As Worksheet
i = 1

    Set sh = Sheets.Add
    sh.Name = "Resultat"
    For Each wsSheet In Worksheets
        If wsSheet.Name <> "Resultat" Then
            Sheets("Resultat").Range("A" & i) = wsSheet.Name
            Set rng = wsSheet.Range("G65536").End(xlUp)
            If rng.Row > 1 Then
                Sheets("Resultat").Range("B" & i) = rng
            End If
            i = i + 1
        End If
    Next wsSheet
    Sheets("Resultat").Select
End Sub
Avatar billede fynbo Nybegynder
24. november 2004 - 00:30 #18
bak's virkede efter hensigten.

smid et svar, bak
Avatar billede martin_moth Mester
24. november 2004 - 07:03 #19
Ikke for noget, min virker skam også hvis du retter til G2 som jeg skrev
Avatar billede bak Forsker
24. november 2004 - 08:10 #20
ok, og jeg deler gerne med martin :-)
Avatar billede martin_moth Mester
24. november 2004 - 09:54 #21
Ja tak - det er trods alt mig, der leverede indsatsen omkring at få redegjort, hvad der egenligt blev spurgt om. Og deri lå det meste af arbejdet - det er jo nemt nok at komme med en løsning, når man først kan se hvad det drejer sig om :o)

God jul.

;o)
Avatar billede martin_moth Mester
24. november 2004 - 09:54 #22
PS: Jeg skal bruge pointene til julegaver - derfor!
Avatar billede bak Forsker
24. november 2004 - 11:11 #23
Det bliver nok en billig jul, hva' ?
Jeg tror jeg adopterer den ide... :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester