Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketFørste ledige celle:

 Besvar Besvar
Forfatter
Daniel Se dropdown
Forum Begynder
Forum Begynder


Medlem: 30.Sep.2012
Status: Offline
Point: 6
Direkte link til dette indlæg Emne: Første ledige celle:
    Sendt: 30.Sep.2012 kl. 20:55
Hej alle!

Jeg har tosset internettet rundt efter noget der egentlig burde være ret nemt. Uanset hvad har jeg prøvet utallige 'løsninger', men ikke noget synes at virke. Vil I hjælpe?

Jeg har et regneark med 5 faneblade. Der indtastes i første faneblad og værdien af en bestemt celle kopieres til næste ledige celle i en af de andre faneblade (bestemt af en værdi). Det har virket fint. Nu er det sådan at jeg nødvendigvis skal have nogle fyldte celler nederst i alle fanebladene og kan derfor ikke bruge:

nextRow = Sheets("Rengøring, smøring og diverse").Range("B" & Rows.Count).End(xlUp).Row - 1

Der virkede tidligere fordi den jo tæller cellerne i bunden med.

Mit problem går så ud på hvordan jeg finder den næste ledige celle i området: B25:B75, f.eks. som nedenstående, hvor bundteksten ligger i cellerne fra B75 -> B86.

nextRow = Sheets("Rengøring, smøring og diverse").Range("B75").End(xlUp).Row - 1

Jeg må vel nødvendigvis tælle oppefra og ned, da bunden er konstant .. men hvordan pokker får jeg det puttet ind i noget VBA?

Tak for alt hjælp!

Daniel
Til top



Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 01.Okt.2012 kl. 15:51
Hej Daniel,
 
Afhængig af dit arks opbygning, er der flere metoder.
Hvis alle celler i området B1 til B25 er udfyldt, er det smartest at tæller oppefra.
 
Prøv med:
nextRow = Sheets("Rengøring, smøring og diverse").Range("B1").End(xlDown).Row + 1
 
//Allan
Til top
Daniel Se dropdown
Forum Begynder
Forum Begynder


Medlem: 30.Sep.2012
Status: Offline
Point: 6
Direkte link til dette indlæg Sendt: 01.Okt.2012 kl. 16:42
Hej Allan,

Tak for dit svar!

Ikke alle celler fra B1:B25 er udfyldt, så den må først returnere den første ledige celle *mellem* B26:B75.

Koden:
nextRow = Sheets("Rengøring, smøring og diverse").Range("B1").End(xlDown).Row + 1
giver 7 og ..
nextRow = Sheets("Rengøring, smøring og diverse").Range("B25").End(xlDown).Row + 1
giver 76 fremfor 26, der er den første ledige celle.

Er dette godt nok forklaret?

Daniel =)
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 01.Okt.2012 kl. 20:01
Et kvalificeret gæt:
 
nextRow = Sheets("Ark1").Range("B76").End(xlUp).Row + 1
If nextRow < 26 Then nextRow = 26
If nextRow > 75 Then
    MsgBox "Der er ikke flere ledige rækker"
    Exit Sub
End If
 
Da B76 altid indeholder en værdi, må den være det faste holdepunkt forneden.
Hvis resultatet bliver mindre end række 26, vælges række 26
 
//Allan
Til top
Daniel Se dropdown
Forum Begynder
Forum Begynder


Medlem: 30.Sep.2012
Status: Offline
Point: 6
Direkte link til dette indlæg Sendt: 02.Okt.2012 kl. 18:53
Hej Allan,

Det ser ud til at virke! 
Mange tak for hjælpen :D

Daniel =)
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 02.Okt.2012 kl. 19:29
Velbekomme Daniel, det var fedt det virkede

//Allan
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk