Print side | Luk vindue

Mangler lidt kode til automatisering.

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=1553
Udskrevet den: 22.Jan.2025 kl. 16:44


Emne: Mangler lidt kode til automatisering.
Besked fra: JTH
Emne: Mangler lidt kode til automatisering.
Posteringsdato: 21.Feb.2014 kl. 17:39

Hej med jer kloge hoveder. Smile

Ved ikke om det kan lade sig gøre, men de tal jeg har stående fra I6:W6 vil jeg gerne ha' indsat i Y:AM ud for den 4 i hver måned og så har jeg en bruger defineret formatering i I7:W7 som skal indsættes i Y:AM ud for den 5 i hver måned skulle gerne bygges ind i den eksisterende kode, hvis det kan lade sig gøre.


uploads/1068/farve.xlsm" rel="nofollow - uploads/1068/farve.xlsm




Svar:
Besked fra: Allan
Posteringsdato: 21.Feb.2014 kl. 18:41

Hej JTH,

Prøv med denne stump.
Jeg har farvet de steder jeg har ændret.

Sub Update_Row_Colors()

   Dim LRow As Integer
   Dim LCell, MCell, NCell As String
   Dim LColorCells, MColorCells, NColorCells, OColorCells, PColorCells As String

LRow = 7 'Starter i række 7

   While LRow < 400 'opdatere i 400 rækker

      LCell = "b" & LRow
      MCell = "b" & LRow
      NCell = "c" & LRow

      ' Områder der bliver farvet
      LColorCells = "b" & LRow & ":" & "w" & LRow
      MColorCells = "y" & LRow & ":" & "am" & LRow
      NColorCells = "b" & LRow & ":" & "c" & LRow
      OColorCells = "a" & LRow
      PColorCells = "i6:w6"

    Select Case Left(Range(LCell).Value, 2)

       Case "05"
          Range(LColorCells).Interior.Color = RGB(231, 230, 230)

    End Select

    Select Case Left(Range(MCell).Value, 2)

       Case "04"
          Range(MColorCells).Interior.Color = RGB(208, 206, 206)
          Range(MColorCells).Borders.LineStyle = xlContinuous
          Range(MColorCells).FormulaLocal = Range(PColorCells).FormulaLocal

       Case "05"
          Range(MColorCells).Interior.Color = RGB(231, 230, 230)
          Range(MColorCells).Borders.LineStyle = xlContinuous
          Range(MColorCells).NumberFormatLocal = "#.##0,00_);[Rød](#.##0,00);[Farve15]#.##0,00_)"

    End Select

    Select Case Left(Range(NCell).Value, 1)

       Case "L"
          Range(NColorCells).Interior.Color = RGB(217, 225, 242)
                  
       Case "S"
          Range(NColorCells).Interior.Color = RGB(217, 225, 242)
                  
    End Select

    Select Case Left(Range(NCell).Value, 1)

       Case "M"
          Range(OColorCells).Interior.Color = RGB(217, 225, 242)
   
    End Select

    LRow = LRow + 1
   Wend
End Sub



Besked fra: JTH
Posteringsdato: 22.Feb.2014 kl. 01:44

Virker perfekt Allan, mange tak, har bøvlet en del med uge nummer kan godt få den til at skrive det rigtige uge nr. ud for hver dag, men det jeg gerne ville havde er at der kun stod F.eks "Uge 2" o.s.v. ud for hver mandag og ikke noget de andre dage i kolonne A.

Da jeg har rettet lidt i ark og kode er her en opdateret version.

uploads/1068/farve1xlsm.xlsm" rel="nofollow - uploads/1068/farve1xlsm.xlsm




Besked fra: Allan
Posteringsdato: 22.Feb.2014 kl. 09:02
Hej igen,
 
I dette tilfælde skal du bruge formlen UGEDAG for at finde ud af om der er tale om en mandag.
Hvis det er mandag, skal ugenummeret skrives, ellers ikke.
Formlen i A7 ser således ud.
=HVIS(UGEDAG(B7;1)=2;"Uge "&UGE.NR(B7;21);"")
 
Hvis ugedag i B7 er 2 (søndag er 1, mandag er 2 osv) så skal formlen skrive teksten "Uge " og ugenummeret for datoen i B7
 
Her din fil opdateret med formlen /uploads/1/JTH_farve1xlsm.xlsm - uploads/1/JTH_farve1xlsm.xlsm  
 
//Allan


Besked fra: JTH
Posteringsdato: 22.Feb.2014 kl. 16:24

Tusind tak Allan virker bare som det skal.

Vil du forklare mig den formel lidt mere detaljeret jeg er ikke lige med på dette (b7;1) og (b7;21) hvad gør 1 og 21 



Besked fra: Allan
Posteringsdato: 22.Feb.2014 kl. 18:29

Naturligvis Smile

Formlen er: =HVIS(UGEDAG(B7;1)=2;"Uge "&UGE.NR(B7;21);"")

Hvis vi bryder formlen op i delelementer.

Ugedag(B7;1)
Returnerer ugedagen for datoen som står i B7
1-tallet som returtype fortæller Excel at jeg forventer at søndag = 1 og Lørdag = 7 ud fra listen herunder.

Hvis resultatet af ovenstående er 2, ved jeg at der er tale om en mandag som har  dag nummer 2.

Jeg ønsker at resultatet skal være ugenummer, man jeg ønsker samtidig at teksten "Uge " skal stå foran mit ugenummer.

Formlen for dette er "Uge " & UGE.NR(B7;21)

Du kan blande tekst og formler i en celle ved at bruge &.
UGE.NR(B7;21) fortæller at jeg skal bruge ugenummer fra datoen i B7 ud fra standarden 21
21 som returtype fortæller Excel at  jeg forventer europæiske ugenummereringssystem som ugenummer.

Håber at dette kaster lidt lys over mysteriet.

//Allan






Besked fra: JTH
Posteringsdato: 24.Feb.2014 kl. 04:39

Mange tak Allan.

Nu kan selv jeg forstå det. Smile



Besked fra: Allan
Posteringsdato: 24.Feb.2014 kl. 13:06
Velbekomme Smile
Dejligt du kunne bruge det.
 
//Allan



Print side | Luk vindue