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

Hilfe beim Schreiben von Makro

Hilfe beim Schreiben von Makro
29.01.2018 11:52:43
Makro
Hallo ihr Excelspezialisten,
ich habe ein funktionierendes Programm, bei welchem jedoch zu oft
select oder activate verwendet wird. Dies ist sehr zeitaufwendig.
Das nachstehende Makro möchte ich gerne so umgestalten, dass die hierin befindlichen
Ereignisse ausgeführt werden, ohne die jeweiligen Tabellen zu aktivieren.
Ist das überhaupt möglich?
Folgende Daten habe ich vorbereitet:
Dim WB As Workbook
Dim wksSc1 As String 'ScantabelleKopierer1
Dim wksSc2 As String 'ScantabelleKopierer2
Dim wksH As String 'Hilfstabelle
Dim lngI As Long, intWert As Integer
Dim EndeB As Integer
Dim EndeF As Integer
Application.ScreenUpdating = False
Set WB = ThisWorkbook 'Worksheets("Hilfstabelle").Range("Z16")
wksH = Worksheets("Hilfstabelle").Range("V2")
'wksSc1 = Worksheets("Hilfstabelle").Range("V6")
'wksSc2 = Worksheets("Hilfstabelle").Range("V7")
wksSc1 = Worksheets(wksH).Range("V6")
wksSc2 = Worksheets(wksH).Range("V7")
Debug.Print wksH
Debug.Print wksSc1
Debug.Print wksSc2
Diese Daten würde ich als zweite Zeile einsetzen.
funktioniert bei mir jedoch nicht.
das bisherige Makro:
Sub Scantabelle_2_mit_1_vergleichen_filtern_kopieren()
Dim lngI As Long, intWert As Integer
Dim EndeB As Integer
Dim EndeF As Integer
Application.ScreenUpdating = False
Worksheets("ScantabelleKopierer2").Activate
With Worksheets("ScantabelleKopierer2")
For lngI = 1 To Cells(Rows.Count, 2).End(xlUp).Row
intWert = Application.WorksheetFunction. _
CountIf(Worksheets("ScantabelleKopierer1").Range("B:B"), Cells(lngI, 2).Value)
If intWert > 0 Then
Cells(lngI, 2).Interior.ColorIndex = 3
End If
Next lngI
'Filtert den nicht farbigen Bereich
.Range(Cells(1, 1), Cells(Cells(65536, 2).End(xlUp).Row, 5)).AutoFilter
ActiveSheet.Range("$A$1:$E$210").AutoFilter Field:=2, Operator:= _
xlFilterNoFill
Dim rBereich  As Range
Dim rzelle    As Range
With ThisWorkbook.Worksheets("ScantabelleKopierer2") ' den Tabellenblattnamen ggf. anpassen!
Set rBereich = .Range("B1:B" & .Cells(Rows.Count, 2).End(xlUp).Row)
For Each rzelle In rBereich
If rzelle.Interior.ColorIndex = xlNone Then GoTo errorhandler
Next rzelle
End With
'   MsgBox " alles rot"
Worksheets("ScantabelleKopierer2").Range("A1:E" & Cells(Rows.Count, 5).End(xlUp).Row). _
AutoFilter
Worksheets("ScantabelleKopierer2").Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row). _
Interior.ColorIndex = xlNone
Worksheets("ScantabelleKopierer2").Range("A1").Select
Application.ScreenUpdating = True
Exit Sub
errorhandler:
'   MsgBox "Die Zelle " & rZelle.Address(0, 0) & " hat keine Hintergundfarbe.", _
'      64, "   Information für " & Application.UserName
Range(Cells(2, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 5)).SpecialCells( _
xlCellTypeVisible).Copy
Sheets("Hilfstabelle").Range("BG2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,  _
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Worksheets("Hilfstabelle").Activate
Worksheets("Hilfstabelle").Range(Cells(2, 62), Cells(Rows.Count, 63).End(xlUp)) = "0"   'ändert  _
Wert in Spalte 62 und 63 auf 0
Worksheets("Hilfstabelle").Range(Cells(2, 59), Cells(Rows.Count, 63).End(xlUp)).Interior. _
ColorIndex = 3
Worksheets("Hilfstabelle").Range(Cells(2, 59), Cells(Rows.Count, 63).End(xlUp)).Copy
Worksheets("ScantabelleKopierer1").Activate
Worksheets("ScantabelleKopierer1").Range("A1").End(xlDown).Offset(1, 0). _
PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Worksheets("ScantabelleKopierer2").Activate
Worksheets("ScantabelleKopierer2").Range("A1:E" & Cells(Rows.Count, 5).End(xlUp).Row). _
AutoFilter
Worksheets("ScantabelleKopierer2").Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row).Interior. _
ColorIndex = xlNone
'ScantabelleKopierer1_Text_in_Zahlen_umwandeln_Null_entfernen
Worksheets("ScantabelleKopierer1").Activate
Columns("B:B").Select
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Worksheets("ScantabelleKopierer1").Range("A1").Select
Application.ScreenUpdating = True
Set rBereich = Nothing
End With
End Sub

Besten Dank für eure Hilfe.
Gruss
Peter

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

Betreff
Datum
Anwender
Anzeige
AW: Hilfe beim Schreiben von Makro
29.01.2018 20:42:29
Makro
"Folgende Daten habe ich vorbereitet:....Diese Daten würde ich als zweite Zeile einsetzen." - Häääh?
Was für Daten? Das ist doch Code, was folgt.
AW: Fehler gefunden
30.01.2018 09:22:09
Peter
Hallo onur,
habe den Fehler gefunden.
Gruss
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige