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
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.
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
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
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)
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
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
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
Så lykkedes det. så skal man ikke lægere huske at trykke på noget for at få det til at virke. Tak for tilrettelserne
Synes godt om
Ny brugerNybegynder
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.