PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelMakro som summerar men hur skippar jag blanka celler/raderMakro som summerar men hur skippar jag blanka celler/rader
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2009-03-29 22:48
 

Jag har skapat ett makro i excel 2003 som multiplicerar värdet i kolumn B med ett fast värde ex-vis 10 och returnerar värdet till kolumn C och lägger dit en enhet på värdet.

Problemet är bara att det gör det ända ner till max antal rader..... 65000 rader någonting sedan får jag scrolla ner och städa rader/celler som jag vill ska vara tomma (makrot används inte till samma antal rader vid varje körning utan antal rader kan variera kraftigt).

Jag har kommit fram till två möjliga lösningar men jag behöver hjälp med dessa båda förslag...

Lösningsförslag 1: skapa ett makro som kollar vilken cell som först är tom i kolumn A och raderar alla rader nedanför... och hur gör jag i så fall en "blank/empty" kontroll och raderar allt hela vägen ner till 65000+ något?

Lösningsförslag 2: =Det jag helst vill, nämligen att summeringen kollar ned till vilken rad det finns data att summera och inte skriver ut summan med enhet nedanför den raden och hur gör jag då? alla rader med data som skall summeras har text i kolumn A ned till en viss rad.. det vore bra att utgå från kolumn A för att kolla hur långt ned i listan summeringen i kolumn B till kolumn C skall göras

Någon vänlig som har förslag?

Nytt inlägg
 2009-03-30 23:06
 

Du kan leta efter sista raden med data i kolumn A så här:

    Dim lngLastRow As Long
    Blad1.Columns("A:A").Select
    lngLastRow = Selection.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

Hoppas att det hjälper!

/Anna


################# Anna Degerman Rosén #################

Anna Degerman Rosén

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Nytt inlägg
 2009-03-31 01:42
 

Hej Anna!

Tack för ditt svar detta verkar defiitivt vara rätt spår..... men jag är rätt grön på denna förhållandevis avancerade användning av excel.
Om jag kör det du skrivit får jag körfel.

vad får lngLastRow för värde efter körning om jag har data från t.ex A1 ned till A15 och hur använder jag värdet för att antingen radera allt från A16 och nedåt, alternativt att klistra in fomeln i kolumn C från C1 till C15 men inte längre ned.

själva delete kommadot för att ta bort raderna 16 till 200är väl 
Rows("16:200").Select
Selection.Delete Shift:=xlUp

Men hur tar jag bort ned till värdet för lngLastRow ?

Nytt inlägg
 2009-03-31 08:27
 

lgnLastRow kommer att vara 15 så du får använda t.ex. Rows(lngLastRow + 1 & ":200").Select istället om du vill göra så som du skriver ovan.

Körfelet kanske beror på att du inte har något blad som heter Blad1?

/Anna


################# Anna Degerman Rosén #################

Anna Degerman Rosén

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Nytt inlägg
 2009-04-07 20:17
 
 Ändrad av ingen wizard  på 2009-04-07 19:38:06

Hej igen Anna!

Körfelet beror inte på att jag inte har något blad som heter Blad1, det verkar vara någon bugg i excel2003 eller så skriver man annorlunda i 2003 du kanske har en nyare version... men det spelar ingen roll din lösning funkar klockrent om jag kör i active sheet och skippar vilket namn bladet egentligen har.... det orkar jag inte grunna mer på just nu i alla fall.

Tusen tack för hjälpen.... jag har nu kommit loss och fått till den biten samt många andra delar som varit lite beroende av att kolla var sista rad är någonstans... jag har ett annat problem som härrör till detta men har en ny tråd på detta problem...

Tack igen Anna  
Jag klistar in lite kod med förklaring här nedanför om det är någon annan som inte är lika slängd som dig på detta men har behov av att lösa något liknande problem som jag fick. 


' variant på ovanstående men söker reda på & markerar.....
' Nedersta raden i kolumn A med något tecken i & ned till i detta fall rad 200 i kolumn A
' (=sista rad+1 rad & till rad 200)
Dim lngLastRow As Long
    Columns("A:A").Select
    lngLastRow = Selection.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Rows(lngLastRow + 1 & ":200").Select

 'Denna kod kollar var sista raden i kolumn A är och markerar samma rader i kolumn K från sista raden till första raden. Vill man markera kolumn A istället ändrar man bara under (SistaCellA & :"1").Columns("K:K").select till Columns ("A:A").select istället.

Dim SistaCellA As Long
    Columns("A:A").Select
    SistaCellA = Selection.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Rows(SistaCellA & ":1").Columns("K:K").Select

För de som liksom jag inte kan allt men vill lära sig Studera dessa exempel så förstår man enkelt vad koden gör och hur man ändrar och vad som är bara variabelnamn
(lngLastRow är bara ett namn... kunde lika gärna stå bara sistaA eller KalleAnka om man så vill) 

 

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelMakro som summerar men hur skippar jag blanka celler/raderMakro som summerar men hur skippar jag blanka celler/rader

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter