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
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
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
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.
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...
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
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)
Det bliver nok en billig jul, hva' ? Jeg tror jeg adopterer den ide... :-)
Synes godt om
Ny brugerNybegynder
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.