Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1472to1476
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

geht dies ohne activate

geht dies ohne activate
31.01.2016 16:30:54
Thomas
Hallo excelfreunde,
matthias L hatt mir lieberweise ein cooles macro geschrieben. dies funktioniert auch super. nun muss ich es aber aus einem anderen Blatt heraus starten. All meine anpassungsversionen führen dazu das dies macro fehlerhaft arbeitet. Zur zeit bekomme ich es nur hin wenn ich es mit "Tabelle1.Activate" verunstalte. Kann sich dies mal jemand vornehmen so das dies ohne Activate funktioniert? Sobald ich in dieser Zeile If Cells(x, 5) Cells(x, 6) Then das Tabellenblatt1 vorsetze funktioniert es irendwie nicht mehr.
besten dank schon mal für eure hilfe
liebe grüsse thomas
Sub Tagesfahrten_teilen_leerzeilen_löschen()
'von Matthias L aus Forum
On Error GoTo Fehler
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'#################Sortieren
'With Worksheets("für kalender")
Worksheets("für kalender").Range("c2:i3000").Sort Key1:=Worksheets("für kalender").Range("e1"),  _
Order1:=xlAscending, Header:=xlYes
'End With
Tabelle1.Activate   ' das wieder raus?
Dim x&, i&
With Tabelle1
For x = 3000 To 2 Step -1
If Tabelle1.Cells(x, 9) = "Tagesfahrt" Then
If Cells(x, 5)  Cells(x, 6) Then
Tabelle1.Rows(x + 1).Insert shift:=xlDown
Tabelle1.Cells(x + 1, 5) = .Cells(x, 6)
Tabelle1.Cells(x + 1, 6) = .Cells(x, 6)
Tabelle1.Cells(x, 6) = .Cells(x, 5)
Tabelle1.Cells(x + 1, 7) = .Cells(x, 7)
Tabelle1.Cells(x + 1, 9) = .Cells(x, 9)
End If
End If
Next
'End With
' löschen wenn spalte e leer
'MsgBox ActiveWorkbook.ActiveSheet.Name ' welches tabellenblatt bin ich
If WorksheetFunction.CountIf(Worksheets("für kalender").Range("e2:e3000"), "") > 0 Then _
Worksheets("für kalender").Range("e2:e3000").SpecialCells(xlCellTypeBlanks).Delete shift:= _
xlUp ' kann auch e:e sein
End With
' löscht wenn Spalte e leer ist die Zeile
Vorlage.Activate   ' das wieder raus?
Fehler:
If Err.Number  0 Then MsgBox "Fehler:im Modul Tagesfahrten_teilen_leerzeilen_löschen " &  _
Err.Number & vbLf & Err.Description
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: geht dies ohne activate
31.01.2016 16:58:04
Gerd
Hallo Thomas,
mit durchgängigem Verweis auf das Blatt mit Codenamen Tabelle1 sollte es ohne Activate aus einem anderen Tabellenblattmodul oder einem allgemeinen Modul der Datei funktionieren.

Dim x As Long
With Tabelle1
For x = 3000 To 2 Step -1
If .Cells(x, 9) = "Tagesfahrt" Then
If .Cells(x, 5)  .Cells(x, 6) Then
.Rows(x + 1).Insert shift:=xlDown
.Cells(x + 1, 5) = .Cells(x, 6)
.Cells(x + 1, 6) = .Cells(x, 6)
.Cells(x, 6) = .Cells(x, 5)
.Cells(x + 1, 7) = .Cells(x, 7)
.Cells(x + 1, 9) = .Cells(x, 9)
End If
End If
Next
End With
Gruß Gerd

Anzeige
AW: geht dies ohne activate
31.01.2016 17:09:16
Matthias
Hallo
Ich hatte Dir hier bereits eine Korrektur mitgeteilt
https://www.herber.de/forum/messages/1472198.html
Außerdem weiß ich ja nicht, ob Worksheets("für kalender")
tatsächlich den internen Namen Tabelle1 hat
Wenn man mit With arbeitet brauchst Du die Referenz zum Tabellenblatt
nicht mehr angeben, das erledigt dann der Punkt.
   With Tabelle1
For x = 19 To 2 Step -1
If .Cells(x, 8) = "TF" Then
If .Cells(x, 5)  .Cells(x, 6) Then
.Rows(x + 1).Insert Shift:=xlDown
.Cells(x + 1, 5) = .Cells(x, 6)
.Cells(x + 1, 6) = .Cells(x, 6)
.Cells(x, 6) = .Cells(x, 5)
.Cells(x + 1, 7) = .Cells(x, 7)
.Cells(x + 1, 8) = .Cells(x, 8)
End If
End If
Next
Statt Tabelle1 kannst Du auch schreiben:
Worksheets("für kalender")
Gruß Matthias

Anzeige
besten dank an Matthias L und Gerd L
31.01.2016 18:07:38
Thomas
Hallo Matthias L und Gerd L,
jetzt läuft es ohne activate
habt besten dank für die Lösung es funktioniert super,
Matthias sorry ich habe dein Korrektur gar nicht mehr im blick gehabt.
besser ich schaue nächste mal nochmal nach. Das macro ist klasse.
habt recht vielen dank eure hilfe.
liebe grüsse thomas

Danke für die Rückmeldung ... owT
31.01.2016 18:13:47
Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige