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

Tabelle verschieben

Tabelle verschieben
21.03.2015 09:24:10
Schulz
Hallo Spezialisten
mein Problem ist vermutlich eine Bagatelle, ich kriege es jedoch nicht gebacken, dies über ein normales Makro zu lösen.
Ich habe eine Datei mit Namen Break.xls geöffnet. Auf dem Desktop befindet sich eine Datei mit Namen JM.xls. Das Makro soll nun diese JM.xls ans Ende im Register Break.xls verschieben und anschliesend alle , (Komma) ersetzten durch nichts (leer).
Zusätzlich soll es gleich noch die Zeilen 1-3 und 5-6 entfernen, danach noch die Spalten A und E-N entfernen.
Anschliessend noch die neue Spalte A aufsteigend sortieren.
Danke für eure Hilfe

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

Betreff
Datum
Anwender
Anzeige
AW: Tabelle verschieben
21.03.2015 10:04:59
Schulz
Habe noch was vergessen......
Es sollen zusätzlich in der neuen Spalte A die Zeilen gelöscht werden, wenn:
- ein Text in der Zelle befindet
- wenn sich Werte darin befinden, welche zwischen 1 und 6'000'000 befinden

AW: Tabelle verschieben
21.03.2015 16:49:07
fcs
Hallo Schulz,
ich hoffe, dass das Makro mit dem schweizer Zahlenformat klarkommt und dieses als nummerisch erkennt und den Zahlenvergleich korrekt abarbeitet.
Gruß
Franz
Sub Schulz()
'Hilfe bei Herber
Dim wkbAktiv As Workbook
Dim wkbJM As Workbook
Dim wksNeu As Worksheet
Dim Zeile As Long, Zeile_L As Long, StatusCalc As Long
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
End With
Set wkbAktiv = ActiveWorkbook
Set wkbJM = Workbooks.Open( _
Filename:="C:\Users\" & Environ("UserName") & "\Desktop\JM.xls", _
ReadOnly:=True) 'Verzeichnis ggf. anpassen
With wkbAktiv
wkbJM.Worksheets(1).Copy after:=.Sheets(.Sheets.Count)
Set wksNeu = .Sheets(.Sheets.Count)
wkbJM.Close savechanges:=False
End With
With wksNeu
.Rows("5:6").Delete Shift:=xlUp
.Rows("1:3").Delete Shift:=xlUp
.Range("E:N").Delete Shift:=xlToLeft
.Range("A:A").Clear 'Spalte A wird später benutzt, um die Zeilen _
zu markieren, die nicht gelöscht werden sollen
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("B1"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange wksNeu.Range("A:D")
.Header = xlYes  'oder xlNo    - ggf. anpassen
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Zeile_L = .UsedRange.Row + .UsedRange.Rows.Count - 1
For Zeile = 1 To Zeile_L
If IsEmpty(.Cells(Zeile, 2)) Then 'wenn leer nicht löschen
.Cells(Zeile, 1) = "X"
ElseIf .Cells(Zeile, 2) = "" Then 'wenn Leerstring nicht löschen
.Cells(Zeile, 1) = "X"
ElseIf IsNumeric(.Cells(Zeile, 2).Text) Then
'wenn außerhalb des Zahlenbereichs dann nicht löschen
If .Cells(Zeile, 2)  6000000 Then
.Cells(Zeile, 1) = "X"
End If
End If
Next
With .Range(.Cells(1, 1), .Cells(Zeile_L, 1))
'Prüfen, ob im Bereich in Spalte A Leerzellen vorhanden sind
If Application.WorksheetFunction.CountBlank(.Cells) > 0 Then
'Zeilen löschen, die im Bereich leer sind
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete xlShiftUp
End If
'Spalte A löschen
.EntireColumn.Delete Shift:=xlShiftToLeft
End With
End With
With Application
.ScreenUpdating = False
.Calculation = StatusCalc
End With
End Sub

Anzeige
AW: Tabelle verschieben
22.03.2015 09:17:31
Schulz
danke für den Beitrag
habe den Unterschied zum recorded Makro gesehen, läuft jetzt alles so wie gewünscht

Problem?
21.03.2015 16:13:56
Michael
Hi Schulz,
Du schilderst hier eine ganze Reihe von Tätigkeiten, die das Makro ausführen soll.
Bei welcher davon hast Du denn eigentlich ein Problem?
"Das Makro soll nun diese JM.xls ans Ende im Register Break.xls verschieben"
Du kannst nur einzelne Tabellenblätter verschieben, keine ganze Datei. Außerdem ist "verschieben" nicht das Mittel der Wahl, denn wenn Du alles verschoben hast, enthält JM keine Blätter mehr - das macht Excel nicht mit. Also: kopieren.
Für diesen ersten Schritt kannst Du mal recherchieren, u.a. wirst Du das hier finden:
https://www.herber.de/forum/archiv/436to440/439276_VBA_ExcelTabelle_ans_Ende_kopieren.html
Die restlichen Schritte kannst Du dann eigentlich (fast alle) mit dem Rekorder aufzeichnen und nachbearbeiten (um etwa die "1000" select rauszunehmen).
Wenn Du so etwas angehst, versuche bitte grundsätzlich, das Problem in "handliche" Einzelschritte zu zerlegen.
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige