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

Spaltenbereich wählen

Spaltenbereich wählen
29.08.2013 15:58:50
Sascha
Hallo Zusammen,
ich versuche seit zwei Tagen ein Problem zu lösen und ich komme selbst nach intensiver Suche nicht auf die Lösung.
Zum Kontext: Ich muss derweil ein Tool erstellen, um eingehende Bewerbungen übersichtlicher dazustellen. Übersichttabelle steht (Rahmendaten wie Namen, Adressen etc.). Da wir nie vorhersehen können wie viele Bewerber sich bewerben, soll man per Button-Klick eine Bewerberzeile hinzufügen können, um die Übersicht beliebig erweitern zu können. Des Weiteren hat die Datei zwei weitere Tabellen, die mit den Rahmendaten der ersten Tabelle gefüttert werden soll.
Bewerber hinzufügen habe ich über folgenden Code gelöst und das klappt gut, egal auf welcher Tabelle das Makro ausgeführt wird:
Sub NeuerBewerber()
Worksheets("Tabelle1").Range("A1:C46").Copy
Worksheets("Tabelle1").Cells(1, Columns.Count).End(xlToLeft).Offset(0, 3).PasteSpecial Paste:=  _
_
xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Worksheets("Tabelle1").Paste
Application.CutCopyMode = False
Worksheets("Tabelle2").Range("A1:J1").Copy
Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:= _
xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Worksheets("Tabelle2").Paste
Application.CutCopyMode = False
End Sub

("Tabelle 1" werden Reihen zugefügt, "Tabelle 2" je 3 Spalten)
Probleme bekomme ich mit dem Löschen des letzten Bewerbers:
Die Zeilen auf Tabelle 1 zu löschen klappt. Die Spalten auf Tabelle 2 nicht. Ich ermittle mittels:
Sub letzte()
letzte = Worksheets("Tabelle1").Cells(1, Columns.Count).End(xlToLeft).Column
Worksheets("Tabelle1").Columns(letzte).EntireColumn.Delete Shift:=xlToLeft
End Sub

die letzte beschriebene Spalte (hier steht die Bewerbernummer über dem restl. Formular), von dieser Spalte aus müssen jetzt die beiden folgenden Spalten mit ausgewählt werden, um dann alle 3 Spalten zu löschen.
Leider habe ich keine Ahnung wie ich diese 3 Spalten gleichzeitig markiere und lösche. Habe es mit den Befehlen "Range.("Letzte:letzte+2")"-Befehlen, Cells, und einigen anderen Kombinationen versucht, nichts klappt bisher. Leider muss das Ding bald fertig sein und ich wende mich daher an Euch und hoffe Ihr könnt mir helfen :)
Mache mich leider erst seit 2 Wochen mit der Makro-Programmierung vertraut, deshalb bin ich noch ganz am Anfang und muss schon kleinste Probleme googlen :)
Danke im voraus für Eure Mühen!
MfG Sascha

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenbereich wählen
29.08.2013 18:43:22
fcs
Hallo Sascha,
hier das Makro zum löschen und das Makro "NeuerBewerber ein wenig optimiert.
Gruß
Franz
Sub letzten_Bewerber_loeschen()
Dim letzte As Long
If MsgBox("Datenzeilen/Datenspalten für letzten Bewerber löschen?", vbQuestion + vbOKCancel +  _
vbDefaultButton2, _
"D A T E N S A T Z   L Ö S C H E N") = vbOK Then
With Worksheets("Tabelle1")
'letzte 3 Spalten löschen
letzte = .Cells(1, .Columns.Count).End(xlToLeft).Column
.Range(.Columns(letzte), .Columns(letzte + 2)).Delete
End With
With Worksheets("Tabelle2")
'letzte Zeile löschen
letzte = .Cells(.Rows.Count, 1).End(xlUp).Row
.Rows(letzte).Delete
End With
End If
End Sub
Sub NeuerBewerber()
With Worksheets("Tabelle1")
.Range("A1:C46").Copy
With .Cells(1, .Columns.Count).End(xlToLeft).Offset(0, 3)
.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.PasteSpecial Paste:=xlPasteAll
End With
End With
Application.CutCopyMode = False
With Worksheets("Tabelle2")
.Range("A1:J1").Copy
.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteAll
End With
Application.CutCopyMode = False
End Sub

Anzeige
AW: Spaltenbereich wählen
30.08.2013 08:17:28
Sascha
Hallo Franz!
Ich danke Dir sehr :), es klappt alles super! Wieder was dazu gelernt, jetzt kann ich mich dem nächsten Problem stellen. Vielen Dank für Deine Hilfe! Ich wünsche Dir ein schönes Wochenende!
MfG Sascha

AW: Spaltenbereich wählen
04.09.2013 11:23:32
Sascha
Hallo liebe Forumsmitglieder,
neues Projekt, neues aber ähnliches Problem :)
Kann mir bitte jemand den Fehler aufzeigen? Bis zum Selektieren funktioniert alles.
Wenn ich ohne die Variable "Ziel" arbeite und mit
".Cells(pagebreakrow, pagebreakcol).Offset(b, -6).select"
die Zelle anzeigen lasse, klappt es. Sobald ich die Variable "Ziel" definiere (brauche sie später für eine Schleife, die nach jedem Seitenumbruch die gleiche Zelle ausliest) und versuche sie mit .range anzuwählen, bekomme ich einen objektdefinierten Fehler.
Wie muss ich die range richtig angeben, dass er mir die "Ziel" Zelle auswählt?
Dim Ziel As Variant
Dim pagebreakrow As Long
Dim pagebreakcol As Long
Dim a As Integer
Dim b As Integer
With Worksheets("Ausgabe")
a = 1
b = 4
pagebreakrow = .HPageBreaks(a).Location.Row
pagebreakcol = .VPageBreaks(a).Location.Column
Ziel = .Cells(pagebreakrow, pagebreakcol).Offset(b, -6)
.Activate
.Range(Ziel).Select
End With
Danke für Eure Mühen!
MfG Sascha

Anzeige
AW: Spaltenbereich wählen
04.09.2013 14:43:58
fcs
Hallo Sascha,
Zellen/Zellbereiche mssen per Set einer entsprechen Objekt/Variant-Variablen zugewiesen werden.
Gruß
Franz
Dim Ziel As Range
Dim pagebreakrow As Long
Dim pagebreakcol As Long
Dim a As Integer
Dim b As Integer
With Worksheets("Ausgabe")
a = 1
b = 4
pagebreakrow = .HPageBreaks(a).Location.Row
pagebreakcol = .VPageBreaks(a).Location.Column
Set Ziel = .Cells(pagebreakrow, pagebreakcol).Offset(b, -6)
.Activate
Ziel.Select
End With

AW: Spaltenbereich wählen
04.09.2013 14:46:59
Sascha
Vielen herzlichen Dank Franz! Werde es gleich einbauen.
MfG Sascha

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige