Avatar billede magmat Nybegynder
04. februar 2007 - 20:28 Der er 15 kommentarer og
1 løsning

Formatere en linie til at ændre størrelse i vba

kan man lave en kode der gøre følgende:

Hvis celle c5 er tom skal der gøres følgende:

Celle c10 skal formateres til at være fed og størrelse 14

Hvis celle c5 IKKE er tom skal der gøres følgende:
Celle c10 skal formateres til at være normal og str. 12

Jeg har forsøgt at lave det under betinget formatering, men kunne ikke ændre størrelsen.
Avatar billede kabbak Professor
04. februar 2007 - 21:02 #1
Jeg kan heller ikke lave om på skriftstørrelsen,men Fed og ikke fed

1. Formlen er =ER.TOM($C$5)

2. formlen er = IKKE(ER.TOM($C$5))
Avatar billede kabbak Professor
04. februar 2007 - 21:26 #2
Hvordan ændres C5, ved indtastning, eller ved at have en formel i den ??
Avatar billede kabbak Professor
04. februar 2007 - 21:31 #3
Hvis du  selv taster i C5, så sæt denne kode ind i arkets modul

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C5")) Is Nothing Then
        If Target = "" Then
            With [C10].Font
                .FontStyle = "Fed"
                .Size = 14
            End With
        Else
            With [C10].Font
                .FontStyle = "Normal"
                .Size = 12
            End With
        End If
    End If
End Sub
Avatar billede magmat Nybegynder
04. februar 2007 - 22:37 #4
JEg har lidt problemer med koden:

Hvis jeg selv indtaster i c5 skriver den fejl i linien:
If Target = "" Then

Men det der er gældende er at c5 faktisk henter informationer fra en anden celle.
Cellen som jeg indtaster i har jeg navngivet "NAVN1", men cellen ligger i et helt andet ark.

Kan det så løses?
Avatar billede kabbak Professor
04. februar 2007 - 22:47 #5
OK, fjern den forrige makro.
Sæt denne ind i ThisWorkbook modulet
Ret "ark2" til det ark som Celle c10 skal ændres i.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Sh.Range("NAVN1")) Is Nothing Then
        If Target = "" Then
            With Worksheets("ark2").[C10].Font
                .FontStyle = "Fed"
                .Size = 14
            End With
        Else
            With Worksheets("ark2").[C10].Font
                .FontStyle = "Normal"
                .Size = 12
            End With
        End If
    End If
End Sub
Avatar billede magmat Nybegynder
24. februar 2007 - 10:10 #6
Pinligt at jeg først har set det nu
MAgne tak for hjælpen
Avatar billede magmat Nybegynder
01. april 2007 - 17:26 #7
Nu har jeg lige siddet og efterprøvet den ovenstående problemstilling og den giver mig problemer.

Hvis jeg ændrer teksten direkte i feltet navn1 formaterer den tingene fuldstændig som den skal, men...

Det forholder sig sådan at feltet Navn1 er linket sammen med et felt i en userform.
Hvis jeg ændrer feltet via min userform går den galt. Makroen stopper og viser at der er fejl i følgende linie.

If Not Intersect(Target, Sh.Range("NAVN1")) Is Nothing Then
Avatar billede kabbak Professor
01. april 2007 - 22:20 #8
prøv at rette linien til denne

If Not Intersect(Target, Range("NAVN1")) Is Nothing Then
Avatar billede magmat Nybegynder
02. april 2007 - 17:28 #9
Nej den kommer desværre med samme fejl.
Kunne man ikke placere koden således at den tjekker hver gang ark2 bliver aktivt?
(Lidt lige som vi gjorde i starten)
Avatar billede excelent Ekspert
02. april 2007 - 18:46 #10
Gætter på at koden skal ligge i Userform feltet

noget ala:

If Sheets(1).Cells(5, 3) = "" Then
Sheets(1).Cells(10, 3).Font.Bold = True
    With Sheets(1).Cells(10, 3).Font
        .Bold = True
        .Name = "Arial"
        .Size = 14
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
   
Else
    Sheets(1).Cells(10, 3).Font.Bold = False
    With Sheets(1).Cells(10, 3).Font
        .Bold = False
        .Name = "Arial"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
End If
Avatar billede kabbak Professor
02. april 2007 - 18:49 #11
du kan sætte det ind i koden, på din userform

F. eks. på en commandiknap

Private Sub CommandButton1_Click()
If TextBox1 = "" Then
        With Worksheets("ark2").[C10].Font
            .FontStyle = "Fed"
            .Size = 14
        End With
    Else
        With Worksheets("ark2").[C10].Font
            .FontStyle = "Normal"
            .Size = 12
        End With
    End If
End Sub
Avatar billede magmat Nybegynder
02. april 2007 - 19:13 #12
jeg har lige prøvet kabbaks løsning og den virker fint, men jeg vil meget gerne undgå kommando knappen ,hvis det kan lade sig gøre.
Avatar billede magmat Nybegynder
02. april 2007 - 19:13 #13
Kan ikke lige gennemskue hvor jeg evt. skulle placere exelents kode henne.
Skal der ikke stå noget med private sub..... ?
Avatar billede kabbak Professor
02. april 2007 - 19:34 #14
Ok så sæt den under tekstboksen, den trikker når tekstboksen forlades.
Ret selv navnet på tekstboksen, så det passer.


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
f TextBox1 = "" Then
        With Worksheets("ark2").[C10].Font
            .FontStyle = "Fed"
            .Size = 14
        End With
    Else
        With Worksheets("ark2").[C10].Font
            .FontStyle = "Normal"
            .Size = 12
        End With
    End If
End Sub
Avatar billede kabbak Professor
02. april 2007 - 19:34 #15
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
if TextBox1 = "" Then
        With Worksheets("ark2").[C10].Font
            .FontStyle = "Fed"
            .Size = 14
        End With
    Else
        With Worksheets("ark2").[C10].Font
            .FontStyle = "Normal"
            .Size = 12
        End With
    End If
End Sub
Avatar billede magmat Nybegynder
02. april 2007 - 20:00 #16
Så lykkedes det.
så skal man ikke lægere huske at trykke på noget for at få det til at virke.
Tak for tilrettelserne
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