Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro um in Tabelle Zeilen zu löschen
#1
Hallo zusammen

Da ich mit Makros nicht wirklich grosse Erfahrung und Kenntnisse habe, hoffe ich dass jemand von euch mir helfen kann.

Ich sollte für meine Auswertungen folgendes Makro erstellen können:
im markierten Bereich (dieser ist je nach Tabelle anders) sollen in jeder markierten Spalte der 1. Wert (dieser steht an unterschiedlichen Stellen) bestehen bleiben und alle weiteren untenstehende Werte in der Spalte gelöscht werden. 

Wie müsste ich dieses Makro programmieren? Kann mir hier jemand helfen?

Danke und Gruss
Daniel
Antworten Top
#2
Hallo Daniel,

meinereiner hat nichts verstanden.
Abgesehen von der Tatsache, daß ein Makro geschrieben werden soll.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#3
Moin,

deine Angaben sind nun wirklich alles andere als transparent und wissenserweiternd Huh .
  • Was verstehst du unter "markiert"? Ist das "selektiert"?
  • Ist das immer eine komplette Spalte?
  • Können das auch mal mehrere in einem Blatt sein?
  • Wenn ja, auch in 1 Spalte mehrere Markierungen untereinander?
  • Warum sehe ich keine Mustertabelle?
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Antworten Top
#4
Sorry zusammen, da habe ich wohl zu wenig präzise Infos geliefert.

Mein Problem anhand des beigefügten Attachment:

ich möchte den Bereich B2:CL36 selektieren/markieren. in diesem selektierten Bereich B2 - CL36 soll das Makro in jeder Spalte (also B-CL) den 1. Wert von oben her stehenlassen und alle weiteren untenstehende Werte löschen. Beispiel Spalte B: Wert/Zahl (es sind immer Zahlen) im Feld B12 soll bestehen bleiben, B13 + B14 sollen gelöscht werden. Auch wenn wie in Spalte E mehrere Lücken zwischen den Zahlen bestehen, sollen alle Werte unterhalb des 1. Wertes (pro Spalte) gelöscht werden. Das heisst für Spalte E: E2 soll bestehen bleiben, E3 - E36 sollen alle Werte gelöscht werden.

Da ich nun etliche solcher Tabellen mit unterschiedlicher Grösse habe (d.h. der zu bearbeitende Bereich kann auch B2 - X50 sein), würde ich den Bereich wo das Makro arbeiten soll, jeweils von Hand selektieren. In diesem individuell selektierten Bereich soll nun das Makro funktionieren.

Sorry nochmals für die Verwirrung.

Gruss und Danke für Feedbacks.


Angehängte Dateien
.xlsx   Beispiel Makro.xlsx (Größe: 15,28 KB / Downloads: 1)
Antworten Top
#5
Hallo!
Es ist einfacher, gleich die gewünschten Spalten über die Spaltenköpfe (B, C, ... X) zu markieren.
Dann funktioniert dieses Makro, welches Du in ein allgemeines Modul einfügst:
Editiert!
Muss ich nochmal überarbeiten!

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
So, Fehler beseitigt!  Angel

In ein allgemeines Modul:
Code:
Sub RestWeg()
Dim Spalte As Long, ErsteZahl As Range, Suchbereich As Range
Set Suchbereich = Intersect(Selection, ActiveSheet.UsedRange)
Application.ScreenUpdating = False
With Suchbereich
  For Spalte = 1 To .Columns.Count
     If .Cells(2, Spalte) <> "" Then
        Set ErsteZahl = .Cells(2, Spalte)
     Else
        Set ErsteZahl = .Cells(1, Spalte).End(xlDown)
     End If
     Range(ErsteZahl.Offset(1, 0), ErsteZahl.Offset(.Rows.Count, 0)).ClearContents
  Next
End With
End Sub

Datei im Anhang.

Gruß Ralf


Angehängte Dateien
.xlsm   Beispiel Makro ZeilenUnten.xlsm (Größe: 22,24 KB / Downloads: 4)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
(08.09.2015, 09:03)RPP63 schrieb: So, Fehler beseitigt!  Angel

In ein allgemeines Modul:
Code:
Sub RestWeg()
Dim Spalte As Long, ErsteZahl As Range, Suchbereich As Range
Set Suchbereich = Intersect(Selection, ActiveSheet.UsedRange)
Application.ScreenUpdating = False
With Suchbereich
  For Spalte = 1 To .Columns.Count
     If .Cells(2, Spalte) <> "" Then
        Set ErsteZahl = .Cells(2, Spalte)
     Else
        Set ErsteZahl = .Cells(1, Spalte).End(xlDown)
     End If
     Range(ErsteZahl.Offset(1, 0), ErsteZahl.Offset(.Rows.Count, 0)).ClearContents
  Next
End With
End Sub

Datei im Anhang.

Gruß Ralf

Super! Besten Dank Ralf, funktioniert 1A!!!!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste