Avatar billede HHA Guru
05. februar 2021 - 13:20 Der er 8 kommentarer og
1 løsning

Ved kørsel af makro, sætte cellehøjde

Hejsa,

Har et problem med at få den til at sætte en bestemt cellehøjde når den kopierer række 22.
Nogen der kan se hvad og hvor jeg skal gøre noget?

Dim datacellColor As Long
Dim cell As Range
ActiveSheet.Unprotect
datacellColor = RGB(Red:=218, Green:=238, Blue:=243)
   
RowNo = ActiveCell.Row
   
    If RowNo < 26 Then
        MsgBox "Du kan kun indsætte rækker ved tilbudspunkter" ' sikrer at man ikke indsætter rækker over række nitten.
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Exit Sub
    End If
   
   
    If Range("B" & (ActiveCell.Row)).Value = "MIS" Then
        MsgBox "Du kan kun indsætte rækker ved tilbudsteksten" ' sikrer at man ikke indsætter rækker udenfor beregningsrækker
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Exit Sub
    End If
             
    ActiveSheet.Range("A19", "Z25").Locked = False 'Unlock the range A19 to Y25

   


    Range("A25", "F25").Interior.Color = datacellColor
    Range("H25", "M25").Interior.Color = datacellColor
    Range("T25", "Z25").Interior.Color = datacellColor
   
    ActiveCell.Offset(1, 0).EntireRow.Insert
    Range("A25").EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow
    Range("A25", "F25").Interior.ColorIndex = 0
    Range("H25", "M25").Interior.ColorIndex = 0
    Range("T25", "Z25").Interior.ColorIndex = 0
   
    Range("A24", "F24").Interior.Color = datacellColor
    Range("H24", "M24").Interior.Color = datacellColor
    Range("T24", "Z24").Interior.Color = datacellColor
   
    ActiveCell.Offset(1, 0).EntireRow.Insert
    Range("A24").EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow
    Range("A24", "F24").Interior.ColorIndex = 0
    Range("H24", "M24").Interior.ColorIndex = 0
    Range("T24", "Z24").Interior.ColorIndex = 0
   
    Range("A23", "F23").Interior.Color = datacellColor
    Range("H23", "M23").Interior.Color = datacellColor
    Range("T23", "Z23").Interior.Color = datacellColor
   
    ActiveCell.Offset(1, 0).EntireRow.Insert
    Range("A23").EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow
    Range("A23", "F23").Interior.ColorIndex = 0
    Range("H23", "M23").Interior.ColorIndex = 0
    Range("T23", "Z23").Interior.ColorIndex = 0
           
    Range("A22", "F22").Interior.Color = datacellColor
    Range("H22", "M22").Interior.Color = datacellColor
    Range("T22", "Z22").Interior.Color = datacellColor
   
    ActiveCell.Offset(1, 0).EntireRow.Insert '.Rows("A22:Z22").RowHeight = 30
    Range("A22").EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow
    Range("A22", "F22").Interior.ColorIndex = 0
    Range("H22", "M22").Interior.ColorIndex = 0
    Range("T22", "Z22").Interior.ColorIndex = 0
    'Rows("A22:Z22").RowHeight = 30
   
    Range("A21", "F21").Interior.Color = datacellColor
    Range("H21", "M21").Interior.Color = datacellColor
    Range("T21", "Z21").Interior.Color = datacellColor
   
    ActiveCell.Offset(1, 0).EntireRow.Insert
    Range("A21").EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow
    Range("A21", "F21").Interior.ColorIndex = 0
    Range("H21", "M21").Interior.ColorIndex = 0
    Range("T21", "Z21").Interior.ColorIndex = 0
     
    Range("A20").Interior.ColorIndex = 3
    Range("B20", "F20").Interior.Color = datacellColor
    Range("H20", "M20").Interior.Color = datacellColor
    Range("T20", "Z20").Interior.Color = datacellColor
   
    ActiveCell.Offset(1, 0).EntireRow.Insert
    Range("A20").EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow
    Range("A20").Interior.ColorIndex = 3
    Range("B20", "F20").Interior.ColorIndex = 0
    Range("H20", "M20").Interior.ColorIndex = 0
    Range("T20", "Z20").Interior.ColorIndex = 0
   
    Range("A19", "F19").Interior.Color = datacellColor
    Range("H19", "M19").Interior.Color = datacellColor
    Range("T19", "Z19").Interior.Color = datacellColor
   
    ActiveCell.Offset(1, 0).EntireRow.Insert
    Range("A19").EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow
    Range("A19", "F19").Interior.ColorIndex = 0
    Range("H19", "M19").Interior.ColorIndex = 0
    Range("T19", "Z19").Interior.ColorIndex = 0
   
    ActiveSheet.Range("D27", ActiveSheet.Range("G27").End(xlDown)).EntireRow.AutoFit ' Sikrer automatisk fit til cellebredde
   
   
   
    ActiveSheet.Range("A18", "Z25").Locked = True 'Lock the range A18 to Y18
    ActiveSheet.Range("H20", ActiveSheet.Range("H20").End(xlDown)).Locked = True ' Locks column H from G20
    ActiveSheet.Range("G20", ActiveSheet.Range("G20").End(xlDown)).Locked = True ' Locks column G from I20
    ActiveSheet.Range("N20", ActiveSheet.Range("N20").End(xlDown)).Locked = True ' Locks column N from M20
    ActiveSheet.Range("T20", ActiveSheet.Range("T20").End(xlDown)).Locked = True ' Locks column T from N20
    ActiveSheet.Range("O20", ActiveSheet.Range("O20").End(xlDown)).Locked = True ' Locks column O from O20
    ActiveSheet.Range("P20", ActiveSheet.Range("P20").End(xlDown)).Locked = True ' Locks column P from P20
    ActiveSheet.Range("Q20", ActiveSheet.Range("Q20").End(xlDown)).Locked = True ' Locks column Q from Q20
    ActiveSheet.Range("R20", ActiveSheet.Range("R20").End(xlDown)).Locked = True ' Locks column R from R20
    ActiveSheet.Range("S20", ActiveSheet.Range("S20").End(xlDown)).Locked = True ' Locks column S from S20
   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True

Application.ScreenUpdating = True

End Sub
Avatar billede jens48 Ekspert
05. februar 2021 - 15:21 #1
Hvis du retter

'Rows("A22:Z22").RowHeight = 30

til

Rows("A22:Z22").RowHeight = 30
(uden begyndende apostrif)

virker det så ikke?
Avatar billede HHA Guru
05. februar 2021 - 15:31 #2
Nej, det gør det ikke.
Det er netop den linje jeg har tilføjet og afprøvet.
Men den vil ikke 🤷‍♀️
Avatar billede store-morten Ekspert
05. februar 2021 - 15:59 #3
Prøv med:
ActiveSheet.Range("A22:Z22").RowHeight = 30
Avatar billede Jan K Ekspert
05. februar 2021 - 16:09 #4
#3, Når alle celler er i samme række, behøver man vel ikke opgive et Range?

Dette burde vel kunne gøre det:

Rows(22).EntireRow.RowHeight = 30


Men hvis jeg ellers læser udkommenteringen rigtigt:

ActiveCell.Offset(1, 0).EntireRow.Insert '.Rows("A22:Z22").RowHeight = 30

Så prøver OP at sætte rækkehøjden samtidig med at der indsættes en ny række, og den går ikke. Jeg læser det måsker forkert, så der skulle have stået

ActiveCell.Offset(1, 0).EntireRow.Insert '.Rows("A22:Z22")
RowHeight = 30

men det giver ikke rigtigt mening.
Avatar billede store-morten Ekspert
05. februar 2021 - 16:09 #5
Eller bare:
Rows("22:22").RowHeight = 30
Avatar billede Jan K Ekspert
05. februar 2021 - 16:11 #6
Undskyld

ActiveCell.Offset(1, 0).EntireRow.Insert
Rows("22).RowHeight = 30

for at få det hele med.
Avatar billede HHA Guru
05. februar 2021 - 16:13 #7
Hejsa,

Det var noget af det rigtige.
Nu sætter den række 22 til den højde.

Men, igen dårligt beskrevet af mig, den skal når den kopierer række 22 sætte den indsatte celle til fx RowHight = 100

Kan ikke rigtigt se hvor f... den skal sættes ind for at gøre dette.
Avatar billede store-morten Ekspert
05. februar 2021 - 16:20 #8
ActiveCell.Offset(1, 0).EntireRow.Insert
ActiveCell.Offset(1, 0).RowHeight = 100
Avatar billede HHA Guru
22. juni 2021 - 20:02 #9
Tak til dig store-morten!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel-kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester