Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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
Inhaltsverzeichnis

Kopfzeileneintrag via Makro erstellen

Kopfzeileneintrag via Makro erstellen
Ralf
Hallo Forum,
ich schreibe mit folgendem Makro eine Log Tabelle in eine Arbeitsmappe:
<pre>Private Sub Workbook_Open()
'---- Bildschirmaktualisierung aus ----
Application.ScreenUpdating = False
'---- Tabellenblatt auswählen ----
Sheets("log").Select
'Call Password_aktiv_no
' Variable zum Ermitteln der letzten belegten Zelle
Dim loLetzte As Long
With Worksheets("log")
' letzte belegte Zelle in Spalte A
loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
If loLetzte = 103 Then
' wenn bereits 99 Einträge vorhanden, dann letzte belegte Zelle = 1
loLetzte = 17
' letzen 15 Einträge nach oben kopieren kopieren
Range("A89:D103").Select
Selection.Cut
Range("A3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
' Bereich 18:D103 löschen
.Range(.Cells(18, 1), .Cells(103, 4)).Clear
End If
' in Spalte A Benutzernamen eintragen
.Cells(loLetzte + 1, 1).Value = Environ("UserName")
' in Spalte C aktuelles Datum eintragen
.Cells(loLetzte + 1, 3).Value = Now
' in Spalte D aktuelle Uhrzeit eintragen
.Cells(loLetzte + 1, 4).Value = Now
End With
Sheets("log").Select
Range("C18:C103").Select
Selection.NumberFormat = "m/d/yyyy"
Range("D18:D103").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Range("A18:D103").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Range("B3").Select
Selection.AutoFill Destination:=Range("B3:B103"), Type:=xlFillDefault
Range("B3:B103").Select
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
True, AllowFiltering:=True
ActiveWorkbook.Save
'---- Tabellenblatt auswählen ----
Sheets("Eingabe").Select
End Sub</pre>
In der Log Tabelle wird der Personalnummer in Spalte A ein Name mittels SVerweis Formel in der nebenstehenden Zelle der Spalte B zugeordnet. Die Matrix mit den Namen befindet sich in den Spalten G und H auf dem Tabellenblatt "Log".
Jetzt möchte ich im Ausdruck des Tabellenblatts "Eingabe" in der Kopfzeile den Namen aus dem letzten Eintrag der Log Tabelle automatisch einfügen.
Die Kopfzeile soll folgendermaßen aussehen:
Kopfzeile rechter Abschnitt:
Ersteller: hier soll der letzte Name aus dem Tabellenblatt "Log" erscheinen.
Datum: Datum: &[Datum]
Beides soll rechts ausgerichtet werden.
Geht sowas?
Kann mich vielleicht Makro technisch jemand unterstützen?
Vielen Dank im Voraus für Eure Hilfe.
Gruß
Ralf

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Kopfzeileneintrag via Makro erstellen
30.06.2010 13:16:31
Rudi
Hallo,
vor End Sub:
    With ActiveSheet.PageSetup
.RightHeader = Sheets("log").Cells(Rows.Count, 1).End(xlUp) & Chr(10) & "Datum: &D"
End With

Gruß
Rudi
AW: Kopfzeileneintrag via Makro erstellen
30.06.2010 13:22:46
Ralf
Hall Rudi,
fast gut.
Es wird jedoch der Eintrag aus der Spalte A in die Kopfzeile übertragen. Ich möchte aus der gleiche Zeile den Eintrag aus der Spalte B in die Kopfzeile übertragen. Außerdem soll vor dem Eintrag der Text "Ersteller:" erscheinen.
Kannst Du dies für mich noch anpassen?
Vielen Dank im Voraus.
Gruß
Ralf
AW: Kopfzeileneintrag via Makro erstellen
30.06.2010 14:09:38
Rudi
Hallo,
sicher kann ich das anpassen. Du solltest dir aber selbst auch Mühe geben. So schwierig ist das nicht.
.RightHeader = "Ersteller: " &Sheets("log").Cells(Rows.Count, 2).End(xlUp) & Chr(10) & "Datum: &D"
Gruß
Rudi
Anzeige
AW: Kopfzeileneintrag via Makro erstellen
30.06.2010 14:18:33
Ralf
Hallo Rudi,
danke für Deine Hilfe.
Ich habe es probiert. Es sah ähnlich Deiner Lösung aus.
Cells(Rows.Count, 2) hatte ich auch, hat aber nicht geklappt.
Vor dem "Ersteller: " hatte ich noch ein &
Ich habe jetzt die Zeile ersetzt, so wie Du es geschrieben hast.
Wie bei mir vorhin. Der Zellinhalt aus der Spalte B wird NICHT in der Kopfzeile ausgegeben. Es steht nur Ersteller: und dahinter nichts.
Vielleicht kannst Du das noch mal überprüfen.
Danke.
Gruß
Ralf
funktioniert einwandfrei
30.06.2010 15:05:58
Rudi
Hallo,
was steht denn in Log!B:B?
sonst vllt.:
.RightHeader = "Ersteller: " &Sheets("log").Cells(Rows.Count, 1).End(xlUp).Offset( ,1) & Chr(10) & "Datum: &D"
Gruß
Rudi
Anzeige
AW: funktioniert einwandfrei
30.06.2010 15:15:35
Ralf
Hallo Rudi,
auch die neue Anpassung funktioniert nicht.
In Log!B:B steht ab Zeile 3:
=WENN(ISTNV(SVERWEIS(A3;$G$3:$H$19;2;FALSCH)) = WAHR; ""; SVERWEIS(A3;$G$3:$H$19;2;FALSCH))
Die Matrix steht im Bereich G3:H19. Wobei in Spalte G die Personalnummer steht, die in der Spalte A durch das makro eingetragen wird. In Spalte H steht der Name zu der peronalnummer, der in Spalte B eingetragen wird.
Ich weiß nicht mehr weiter.
Gruß
Ralf
AW: funktioniert einwandfrei
30.06.2010 15:51:10
Ralf
Hallo Rudi,
ich habe gerade die Reihenfolge der abzuarbeitenden Makros verändert.
Jetzt funktioniert es.
Danke für Deine Hilfe.
Gruß
Ralf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige