Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Worksheet_Change automatisch einfügen

Worksheet_Change automatisch einfügen
28.01.2008 20:04:08
Fred
Hallo zusammen
Ich erstelle über einen Button ein neues Tabellenshett,und würde jetzt gerne ins Worksheet_Change Ereignis diesen Code beim erstellen mit einfügen. Weis jemand wie das geht.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim pos As Integer
pos = InStr(Target.Cells(1, 1), "Luczyk")
If pos > 0 Then
With Target.Characters(Start:=pos, Length:=6).Font
.FontStyle = "Fett"
.ColorIndex = 3
End With
End If
pos = InStr(Target.Cells(1, 1), "Lehmann")
If pos > 0 Then
With Target.Characters(Start:=pos, Length:=7).Font
.FontStyle = "Fett"
.ColorIndex = 4
End With
End If
pos = InStr(Target.Cells(1, 1), "Cin")
If pos > 0 Then
With Target.Characters(Start:=pos, Length:=10).Font
.FontStyle = "Fett"
.ColorIndex = 5
End With
End If
pos = InStr(Target.Cells(1, 1), "Hücker")
If pos > 0 Then
With Target.Characters(Start:=pos, Length:=6).Font
.FontStyle = "Fett"
.ColorIndex = 7
End With
End If
pos = InStr(Target.Cells(1, 1), "Hamann")
If pos > 0 Then
With Target.Characters(Start:=pos, Length:=6).Font
.FontStyle = "Fett"
.ColorIndex = 1
End With
End If
pos = InStr(Target.Cells(1, 1), "Schäfer")
If pos > 0 Then
With Target.Characters(Start:=pos, Length:=7).Font
.FontStyle = "Fett"
.ColorIndex = 14
End With
End If
End Sub


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change automatisch einfügen
28.01.2008 20:31:46
{Boris}
Hi Fred,
im Beispiel ist der Code als Text in Zelle A1 des Blattes Tabelle1 (Codename!) hinterlegt:

Option Explicit
Sub neues_Blatt_mit_Code()
Dim Ws As Worksheet
Dim strCodeLines As String
strCodeLines = Tabelle1.Range("A1")
Set Ws = Worksheets.Add
With ActiveWorkbook.VBProject.VBComponents(Ws.Name).CodeModule
.InsertLines 200, strCodeLines
End With
End Sub


Grüße Boris

Alternativ mit einem Einzeiler
28.01.2008 20:37:00
{Boris}
Hi Fred,

Sub neues_Blatt_mit_Code()
ActiveWorkbook.VBProject.VBComponents(Worksheets.Add.Name).CodeModule.InsertLines 200, Tabelle1. _
Range("A1")
End Sub


Grüße Boris

Anzeige
AW: Worksheet_Change automatisch einfügen
28.01.2008 20:56:07
Fred
Hallo Boris
vielen Dank für Deine Tipps. Damit bin ich ein wenig überfordert. Ich benutze diesen Code um ein neues Blatt zu erstellen. Wie kann ich dort Deinen Code einfügen?
Private Sub CommandButton1_Click()
Dim sWks As String
sWks = InputBox(prompt:="Gesuchter Urlaubsplan:")
If sWks = "" Then Exit Sub
On Error GoTo ERRORHANDLER
Worksheets(sWks).Select
End
ERRORHANDLER:
MsgBox "Urlaubsplan " & sWks & " nicht vorhanden! Ich lege jetzt einen neuen an @ Fred"
Range("A1:BJ35").Select
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Format(Date, "yyyy") + 0
ActiveSheet.Paste
ActiveSheet.Columns("AL:BA").Select
Selection.EntireColumn.Hidden = True
MsgBox " Urlaubsplan wurde gespeichert @ Fred "

Anzeige
AW: Worksheet_Change automatisch einfügen
28.01.2008 21:08:00
Josef
Hallo Fred,
wenn es sich um viele Tabellenblätter handelt, dann wäre es vielleicht sinnvoller, den Code in das Modul "DieseArbeitsmappe" unter "Workbook_SheetChange" zu plazieren. Ggf. kann man noch eine Abfrage des Blattnamens drumherum bauen.

Gruß Sepp



AW: Worksheet_Change automatisch einfügen
28.01.2008 21:25:30
Fred
Hallo zusammen
Vielen Dank für Eure Bemühungen. Der Tipp von Boris funktioniert prima. NUUUUUUUR Als Modul ist der Code von mir nicht lauffähig. Weiss jemand was ich ändern muss damit mein Code als Modul einsetzbar ist

Anzeige
Die Variable "Target"
28.01.2008 21:49:53
{Boris}
Hi Fred,
Target ist eine Variable des Typ Range, die so im Change_Ereignis verarbeitet wird:
Private Sub Worksheet_Change(ByVal Target As Range)
Also ist Target nichts anderes wie z.B. Range("A1"). Du musst also überall Target durch Deinen Bezug ersetzen.
Grüße Boris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige