Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1344to1348
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
Zellinhalte löschen wenn in Spalte Text
13.01.2014 11:27:22
Daniel
Hallo,
ich habe eine Liste mit Formeln, die aus unterschiedlichen Tabellenblättern eine Liste generiert. Diese Liste umfasst ca. 10.000 Zeilen.
Ich habe nun die Problematik, dass Texte in Beschriftungen in Zellen zu lang sind und aufgrund von Formeln in der Zelle rechts daneben umgebrochen werden müssen, damit der Text vollständig angezeigt wird.
Hier ein Beispiel: https://www.herber.de/bbs/user/88781.xlsx
A1 bis E6 zeigt den aktuellen Stand.
H8 bis L13 zeigt das Ziel.
Erster Lösungsansatz ist ein Makro, dem ich sagen kann:
Wenn in Spalte XY (Variabel) Text,
von Zeile XY(Variabel) bis Zeile YY(Variabel)
dann lösche in XY Spalten rechts daneben (Anzahl Variabel)den Zelleninhalt.
Falls noch andere Ideen vorhanden sind gerne willkommen.
Besten Dank
Daniel

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalte löschen wenn in Spalte Text
13.01.2014 14:06:31
Rudi
Hallo,
als Ansatz:
Sub aaa()
Dim lLast As Long, lRow As Long, lCol As Long
lLast = Cells.Find("*", [A1], , , , xlPrevious).Row
Application.ScreenUpdating = False
For lRow = 1 To lLast
For lCol = Cells(lRow, Columns.Count).End(xlToLeft).Column To 1 Step -1
If Not Cells(lRow, lCol).HasFormula Then
Range(Cells(lRow, lCol + 1), Cells(lRow, Columns.Count)).Clear
Exit For
End If
Next
Next
Cells.WrapText = False
End Sub

Gruß
Rudi

AW: Zellinhalte löschen wenn in Spalte Text
13.01.2014 14:14:00
Daniel
Hallo Rudi,
danke das du dich der Sache angenommen hast, wärst du so nett und gibst mir noch die Unterstützung, wo ich
a) die Spalte eintragen kann, in der Text steht und auf diese Zeile sich es bezieht
b) die Zeilen von bis eintragen kann, in denen das Makro arbeiten soll
c) die Anzahl der Zellen rechts neben dem Text bzw. die Anzahl spalten
Bin leider kein guter VBA Kenner wie du merkst :)
Schöne Grüsse
Daniel

Anzeige
AW: Zellinhalte löschen wenn in Spalte Text
13.01.2014 14:24:07
fcs
Hallo Daniel,
hier ein Ansatz für ein Makro, wie man es umsetzen könnte.
Die variablen Werte werden via Zellauswahl in Inputboxen ausgewählt oder vom Makro berechnet.
Das Makro fügst du in einem allgemeinen Modul der Datei mit den Formeln ein oder in deiner persönlichem Makroarbeitsmappe.
Gruß
Franz
Sub Aufbereiten_Zellen_mit_Text()
Dim wks As Worksheet
Dim lngZeile As Long, lngZeile_L
Dim lngSpalte As Long, lngSpalte_L As Long
Dim varEingabe As Range
On Error GoTo Fehler
Set wks = ActiveSheet
'Auswahl der 1. zu prüfenden Zelle
Set varEingabe = Application.InputBox( _
"Bitte 1. Zelle auswählen, die geprüft werden soll", _
Title:="Aufbereiten Zeilen mit Text", _
Default:=ActiveCell.Address, Type:=8)
lngSpalte = varEingabe.Column 'Spalte die geprüft werden soll
lngZeile1 = varEingabe.Row    'Zeile ab der geprüft werden soll
'Auswahl der Spalte bis zu der gelöscht werden soll
Auswahl_Spalte_L:
Set varEingabe = Application.InputBox( _
"Bitte Zelle in Spalte auswählen bis zu der gelöscht werden soll", _
Title:="Aufbereiten Zeilen mit Text", _
Default:=varEingabe.Offset(0, 1).Address, Type:=8)
lngSpalte_L = varEingabe.Column
If lngSpalte_L  "" Then
.Range(.Cells(lngZeile, lngSpalte + 1), _
.Cells(lngZeile, lngSpalte_L)).ClearContents
End If
Next
'Zellen im Prüfbereich ohne Zeilenumbruch formatieren
With .Range(.Cells(lngZeile1, lngSpalte), .Cells(lngZeile_L, lngSpalte))
.WrapText = False
End With
End With
Application.ScreenUpdating = True
Fehler:
With Err
Select Case .Number
Case 0
'Alles OK
Case 424
'Zellauswahl wurde abgebrochen
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Zellinhalte löschen wenn in Spalte Text
14.01.2014 09:54:48
Daniel
Hallo Franz,
funktioniert soweit schonmal gut, nun noch ein paar kleine Feintunings bitte:
1.
Ich gebe in der Inputbox die letzte Zelle (Zeile, Spalte) an, bis zu der gelöscht werden soll. Das Makro löscht aber auch in den weiteren Zeilen die Formeln.
...Ziel: Das Makro sollte in der Zeile, die in der Inputbox genannt ist, aufhören und in den Folgezeilen keine Formeln mehr löschen.
2.
Es scheint als ob das Arbeitsblatt danach geschützt ist, jedenfalls gibt mir Excel die Rückmeldung bei der "ERsetzen-Funktion", dass dies nicht funktioniert aus diesem Grund.
...Lässt sich dies umgehen, dass das Arbeitsblatt nicht geschützt ist nach Ausführen des Makros?
Besten dank.
VG, Daniel

Anzeige
AW: Zellinhalte löschen wenn in Spalte Text
14.01.2014 12:11:52
fcs
Hallo Daniel,
Frage 1:
Da muss dann die letzte Zeile auch aus der gewählten Zelle ermittelt werden.
Ich hab das Makro in diese Richtung angepasst.
Frage 2:
Das Makro ändert nichts an den Einstellungen für den Blattschutz
Da muss etwas anderes die Ursache sein.
Gruß
Franz
Sub Aufbereiten_Zellen_mit_Text()
Dim wks As Worksheet
Dim lngZeile As Long, lngZeile_L
Dim lngSpalte As Long, lngSpalte_L As Long
Dim varEingabe As Range
On Error GoTo Fehler
Set wks = ActiveSheet
'Auswahl der 1. zu prüfenden Zelle
Set varEingabe = Application.InputBox( _
"Bitte 1. Zelle auswählen, die geprüft werden soll", _
Title:="Aufbereiten Zeilen mit Text", _
Default:=ActiveCell.Address, Type:=8)
lngSpalte = varEingabe.Column 'Spalte die geprüft werden soll
lngzeile1 = varEingabe.Row    'Zeile ab der geprüft werden soll
'Auswahl der Spalte/Zeile bis zu der gelöscht werden soll
Auswahl_Spalte_L:
Set varEingabe = Application.InputBox( _
"Bitte Zelle in Spalte auswählen bis zu der gelöscht werden soll", _
Title:="Aufbereiten Zeilen mit Text", _
Default:=varEingabe.Offset(0, 1).Address, Type:=8)
lngSpalte_L = varEingabe.Column
lngZeile_L = varEingabe.Row
If lngSpalte_L  "" Then
.Range(.Cells(lngZeile, lngSpalte + 1), _
.Cells(lngZeile, lngSpalte_L)).ClearContents
End If
Next
'Zellen im Prüfbereich ohne Zeilenumbruch formatieren
With .Range(.Cells(lngzeile1, lngSpalte), .Cells(lngZeile_L, lngSpalte))
.WrapText = False
End With
End With
Application.ScreenUpdating = True
Fehler:
With Err
Select Case .Number
Case 0
'Alles OK
Case 424
'Zellauswahl wurde abgebrochen
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Zellinhalte löschen wenn in Spalte Text
14.01.2014 12:39:31
Daniel
Funktioniert, Danke fürs Anpassen.
Netten Tag noch.
VG, Daniel

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige