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

 
ForumForumDiskussionerDiskussionerExcelExcelTa bort rader om vissa vilkor uppfyllsTa bort rader om vissa vilkor uppfylls
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2012-10-25 13:06
 

Jag har ett "litet" problem som jag skulle vilja ha hjälp med.

Jag har ett arbets schema som jag exporterat till ett exell dokument. Problemet är att jag inte kan använda den information som en databas utan att manuellt ändra dag för dag.

Dokumentet ser ut som följer:

Namn

 

Ons 121107

 

Aktivitet

Kalle

 

07:00-16:00(60)

 

Bas Nje P

Fredrik

 

07:00-17:00(60)

 

Bas Nje P

Lena

 

08:00-20:00(60)

 

Bas Nje P

Bengt

 

08:00-16:00(m)

 

Prog Nje P

Janne

 

08:00-12:00(m)

 

Bas Nje P

 

 

12:00-16:00(m)

 

Prog Nje P

Maria

 

08:00-16:36(60)

 

Prog Nje P

Tomas

 

08:00-12:00(90)

 

Prog Nje P

 

 

12:00-20:00(90)

 

Bas Nje P

Jens

 

10:00-20:00(30)

 

Bas Nje P

Schemat sträcker sig sedan över 8 veckor

Vad jag skulle vilja göra är att ta bort de rader där kollegen har verksamheten Prog så att bara Bas finns kvar.
Jag har skapat ett macro som tar bort en rad i taget där Prog står men det borde gå att få det att upprepas tills dess att alla är borta.
Del två i problemet för mig är att vissa dagar är delade. Prog kan ske på förmiddagen eller eftermiddagen. De dagar då Prog sker på förmiddagen som för Tomas, tar macrot bort hans namn.

Finns det något sätt att lösa detta eller få macrot att strunta i att ta bort den övre raden om raden med namn om den direkt under är tom?

Hoppas att någon av er har någon aning, jag är helt obevandrad i VBA och nybörjare när det gäller macron så detta övergår min förmåga. 

Nytt inlägg
 2012-10-30 14:16
 

Hej! Har du en loop i ditt macro eller söker du bara efter första förekomsten av Prog och tar bort den raden du hamnar på då?

Det rätta är att ha en loop

dim iRad as integer ' Ett heltal

for iRow=100 to 1 step -1 ' Om du har data från rad 1 och högst till rad 100

   if thisworkbook.sheets(namnet på ditt ark).cells(iRad,12)="Prog" then

      thisworkbook.sheets(namnet på ditt ark).rows(iRow).entirerow.delete xlShiftUp

   end if

next

Koden ovan går igenom raderna nerifrån och upp med början på rad 100. Orsaken till att jag föreslår en baklänges sökning är att delete flyttar upp återstående rader ett snäpp och då skulle loopen kunna smita förbi någon träff. Det går att lösa det med men varför inte loopa baklänges? Det är så sällan man har chansen till det :-)

 


Kihlman

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
 2012-10-31 17:47
 

Tack för hjälpen

Så "vacker" koden blir när man kan.

 

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelTa bort rader om vissa vilkor uppfyllsTa bort rader om vissa vilkor uppfylls

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