Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
Zusammenführung von 2 Makros |
01.06.2017 12:24:48 |
Marcel |
|
|
|
01.06.2017 13:34:24 |
Gast50142 |
|
|
|
02.06.2017 13:57:13 |
Gast35502 |
|
|
|
02.06.2017 14:16:21 |
Marcel |
|
|
|
02.06.2017 15:43:30 |
Gast77879 |
|
|
|
03.06.2017 16:41:45 |
Marcel |
|
|
Von:
Marcel |
Datum:
01.06.2017 12:24:48 |
Views:
1243 |
Rating:
|
Antwort:
|
Thema:
Zusammenführung von 2 Makros |
Hallo,
ich möchte gerne 2 noch separate Makros zusammenführen und diese nacheinander laufen lassen.
Könnt ihr mir hier behilflich sein.
1. Makro: Tabellenblatt wird nach einem Kriterium in einzelne Tabellenblätter gesplittet
2. Makro: Einzelne Tabellenblätter werden dann an einem Ort definierten Ort gespeichert
Hier soll es jedoch dann so sein, dass die im ersten Makro erstellten Tabellenblätter nicht in der Datei als neue Tabellenblätter bleiben, sondern nach dem Speichern an dem definierten Ort wieder gelöscht werden.
Über eure Info wäre ich euch sehr dankbar.
Die beiden Makros sehen wie folgt aus:
1.
Option Explicit
Sub KritToSheet()
Dim objShSource As Worksheet, objSh As Worksheet
Dim rng As Range, rngCopy As Range
Dim varTemp As Variant
Dim strFind As String, strFirst As String
Dim lngLast As Long, lngAct As Long
Dim rngCol As Range, intCol As Integer
On Error Resume Next
Set rngCol = Application.InputBox("Markieren Sie eine Zelle in der" & vbLf & _
"gewünschten Spalte! (Kriterium)", "Tabelle aufteilen", ActiveCell.Address, Type:=8)
If rngCol Is Nothing Then Exit Sub
intCol = rngCol(1).Column
On Error GoTo ErrExit
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
.Cursor = xlWait
End With
rngCol.Parent.Copy After:=Sheets(Sheets.Count)
Set objShSource = Sheets(Sheets.Count)
With objShSource
lngLast = .Cells(Rows.Count, intCol).End(xlUp).Row
lngAct = lngLast
Do While lngAct > 1
strFind = .Cells(2, intCol)
Set rngCol = .Range(.Cells(2, intCol), .Cells(lngAct, intCol))
Set rng = rngCol.Find(what:=strFind, lookat:=xlWhole)
If Not rng Is Nothing Then
strFirst = rng.Address
Do
If rngCopy Is Nothing Then
Set rngCopy = .Rows(rng.Row)
Else
Set rngCopy = Union(rngCopy, .Rows(rng.Row))
End If
Set rng = rngCol.FindNext(rng)
Loop While Not rng Is Nothing And strFirst <> rng.Address
End If
If Not rngCopy Is Nothing Then
Set objSh = Worksheets.Add(After:=Sheets(Sheets.Count))
On Error Resume Next
objSh.Name = strFind
If Err.Number <> 0 Then
objSh.Name = strFind & Format(Now, " hhmmss")
Err.Clear
End If
On Error GoTo ErrExit
rngCopy.Copy
objSh.Cells(2, 1).PasteSpecial xlValues
objSh.Cells(2, 1).PasteSpecial xlFormats
Application.CutCopyMode = False
objShSource.Rows(1).Copy objSh.Rows(1)
rngCopy.Delete
Set rngCopy = Nothing
Set objSh = Nothing
End If
lngAct = .Cells(Rows.Count, intCol).End(xlUp).Row
Loop
.Delete
End With
ErrExit:
Set objShSource = Nothing
Set rngCol = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
.Cursor = xlDefault
End With
End Sub
2.
Sub alle_Tab_als_Datei()
Dim neuname As String
Dim pfad As String
Dim i As Integer
For i = 2 To ActiveWorkbook.Sheets.Count
neuname = Sheets("Upload").Range("A11") & " " & Sheets(i).Name
pfad = "C:\Users\xxx.xxx\Desktop\"
Sheets(i).Copy
ActiveWorkbook.SaveAs pfad & neuname
ActiveWorkbook.Close
Next
End Sub |
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
Zusammenführung von 2 Makros |
01.06.2017 12:24:48 |
Marcel |
|
|
|
01.06.2017 13:34:24 |
Gast50142 |
|
|
|
02.06.2017 13:57:13 |
Gast35502 |
|
|
|
02.06.2017 14:16:21 |
Marcel |
|
|
|
02.06.2017 15:43:30 |
Gast77879 |
|
|
|
03.06.2017 16:41:45 |
Marcel |
|
|