Hej! En procedur som kanske kan hjälpa dig att komma igång: tusen Tack ! Du startar genom excel och den väg du beskriver genom "utvecklare" -> Visual Basic, du kan klistra in koden i "ThisWorkbook" och sedan välja om du vill skapa en knapp i ett menyfält och koppla till macrot, köra macro via "utvecklare" -> Makron eller snabbkommandot till detsamma ALT+F8VBA excel macro
Jag vill ha hjälp med ett enkelt vb program eller möjligen VBA eftersom jag vill köra programmet på ett Excel-ark. Jag kan VB men inte funktioner och metoder/egenskaper som behövs för att använda vb på ett Excel-ark.
Vad vill jag:
Jag har ett Excel-ark som är ett slags kalender delat i två delar vårtermin och hösttermin.
cellerna från F5-AG11 innehåller celler med vissa specifika bakgrundsfärger(lila) som jag vill känna av.
kolumnerna (cell F1-AG1)innehåller veckonummren från V1 till V28 för vårterminen och cellerna anger vissa arbeten som ska utföras de veckorna.
Så här tänker jag mig i pseudo kod :
1. Sök igenom alla celler i spannet F5-AG11 (VT) vårterminen.
2. När en viss bakgrundsfärg (lila) finns i cellen så lagras cellens index.
3. Efter detta så räknar programmet ut 4veckor före den lila cellen och märker den med en specifik bakgrundsfärg. Sen räknas det fram 5 veckor före lila och märker den cellen med en annan bakgrundsfärg. Kanske någon textruta ska informera också.
4. Sök igenom alla celler i spannet för HT
5. Gör om samma som ovan.
Det ska gå lätt att köra det här på nya excel-ark då nya uppdaterade kommer med jämna mellanrum Sv: VBA excel macro
Sub markInfo()
Dim r As Range
Set r = Range("F5:AG11") ' ange område
For Each c In r ' gå igenom varje cell
' kontrollera om färgen är lila(16737996) eller orange(8696052)
If (c.Cells.Interior.Color = 16737996 Or c.Cells.Interior.Color = 8696052) And c.Offset(0, -4).Cells.Column >= r.Column Then
' om färgen 4v bakåt är lila eller orange, markera orange
If c.Offset(0, -4).Cells.Interior.Color = 16737996 Or c.Offset(0, -4).Cells.Interior.Color = 8696052 Then
c.Offset(0, -4).Cells.Interior.Color = 8696052
Else
' annars markera med gult
c.Offset(0, -4).Cells.Interior.Color = 65535
End If
End If
Next
End Sub
Sv:VBA excel macro
ska testa så fort jag får en öppning.
Hur anger jag excel-filen ?
kör jag igång excel och kodar i vb under "utvecklare/visual basic" eller startar jag VB via visual studio och laddar in excel filen där?Sv: VBA excel macro