Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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

Makro starten ohne Blatt zu aktivieren

Makro starten ohne Blatt zu aktivieren
26.04.2018 11:59:16
Idence
Hallo,
ich habe einen Code geschrieben, den man leider nur starten kann, wenn das richtige Blatt aktiviert ist. Und zwar aktiviert es eine bestimmte Zelle aus derm Tabellenblatt "Uebersicht" und überträgt den Inhalt in das Blatt "Timeline".
Ich würde gerne den Code starten, wenn ich das Blatt "Timeline" ansehe und nicht wenn ich in "Uebersicht" bin.
Hat jemand eine Idee, wie man hier vorgehen kann? Im Moment weiß ich nicht, wie ich ein Makro schreiben kann, der das Gleiche tut, aber ohne ".Activate" auskommt.
Gruß
Idence
Hier noch der Code:
Sub UebertragunginTimeline()
n = 8
Worksheets("Uebersicht").Cells(n, 13).Activate
Do While ActiveCell  ""
partname = ActiveCell
Set gesucht = Tabelle2.Range("D8:D1000").Find(what:=partname, LookIn:=xlValues)
If gesucht Is Nothing Then
Worksheets("Timeline").Activate
Cells(9, 4).Activate
h = 9
Do While ActiveCell  ""
h = h + 1
Cells(h, 4).Activate
Loop
Cells(ActiveCell.Row, ActiveCell.Column).Value = partname
Cells(ActiveCell.Row, ActiveCell.Column - 2).Value = "VR3"
Cells(ActiveCell.Row, ActiveCell.Column + 3).Value = Worksheets("Uebersicht").Cells(n, 14)       _
Cells(ActiveCell.Row, ActiveCell.Column + 4).Interior.ColorIndex = Worksheets("Uebersicht"). _
Cells(n, 16).Interior.ColorIndex
Cells(ActiveCell.Row, ActiveCell.Column + 5).Value = Worksheets("Uebersicht").Cells(n, 9)        _
Cells(ActiveCell.Row, ActiveCell.Column + 6).Value = Worksheets("Uebersicht").Cells(n, 10)       _
Cells(ActiveCell.Row, ActiveCell.Column + 7).Value = Worksheets("Uebersicht").Cells(n, 11)       _
Else
Worksheets("Timeline").Activate
Rows(gesucht.Row).Activate
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove     'Zelle wird oberhalb  _
der "gefundenen" Zelle eingefügt, Text wird also nach unten veschoben
Cells(gesucht.Row - 1, 4).Activate
'................................ Übertragung der Zellinhalte von "Uebersicht" zu "Timeline"
Cells(ActiveCell.Row, ActiveCell.Column).Value = partname
Cells(ActiveCell.Row, ActiveCell.Column - 2).Value = "VR3"
Cells(ActiveCell.Row, ActiveCell.Column + 3).Value = Worksheets("Uebersicht").Cells(n, 14)       _
Cells(ActiveCell.Row, ActiveCell.Column + 4).Interior.ColorIndex = Worksheets("Uebersicht"). _
Cells(n, 16).Interior.ColorIndex
Cells(ActiveCell.Row, ActiveCell.Column + 5).Value = Worksheets("Uebersicht").Cells(n, 9)        _
Cells(ActiveCell.Row, ActiveCell.Column + 6).Value = Worksheets("Uebersicht").Cells(n, 10)       _
Cells(ActiveCell.Row, ActiveCell.Column + 7).Value = Worksheets("Uebersicht").Cells(n, 11)       _
End If
n = n + 1                             '
Worksheets("Uebersicht").Activate     'Sprung in naechste Zeile in "Uebersicht" Spalte:  _
Baugruppe
Cells(n, 13).Activate                 '
Loop
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro starten ohne Blatt zu aktivieren
26.04.2018 12:40:40
Rudi
Hallo,
ungetestet:
Sub UebertragunginTimeline()
Dim lngN As Long, rngGesucht As Range
Dim strPartName As String
Dim wksUeb As Worksheet
Application.ScreenUpdating = False
lngN = 8
Set wksUeb = Worksheets("Uebersicht")
With wksUeb
Do While .Cells(lngN, 13)  ""
strPartName = .Cells(lngN, 13)
Set rngGesucht = Worksheets("Timeline").Range("D8:D1000").Find(what:=strPartName, LookIn:= _
xlValues)
If rngGesucht Is Nothing Then
Set rngGesucht = Worksheets("Timeline").Cells(Rows.Count, 4).End(xlUp).Offset(1)
Else
rngGesucht.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Set rngGesucht = rngGesucht.Offset(-1)
End If
With rngGesucht
.Value = strPartName
.Offset(, -2).Value = "VR3"
.Offset(, 3).Value = wksUeb.Cells(lngN, 14)
.Offset(, 4).Interior.ColorIndex = wksUeb.Cells(lngN, 16).Interior.ColorIndex
.Offset(, 5).Value = wksUeb.Cells(lngN, 9)
.Offset(, 6).Value = wksUeb.Cells(lngN, 10)
.Offset(, 7).Value = wksUeb.Cells(lngN, 11)
End With
lngN = lngN + 1
Loop
End With
End Sub

Gruß
Rudi
Anzeige
AW: Makro starten ohne Blatt zu aktivieren
26.04.2018 13:13:24
Idence
Hallo Rudi,
ich bin wirklich darüber erstaunt, dass man einen Code in einer so kurzen, präzisen Weise schreiben kann, meiner war ja sehr sperrig. Er funktioniert einwandfrei, vielen Dank für deine Hilfe!
Gruß
Idence

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige