Supportnet Computer Supportnet Games Supportnet Kochen Explipedia
Login: guestBesucher online: 298
Supportnet Computerforum
SUPPORT
Home
Forum
Tipps & Infos
Blitz Angebote
Members
Hilfe
Video

TOP THEMEN
SSD Test
Alles über SSDs

Android Tipps
iPad Tipps
Google Tipps
Windows 8 FAQ
Windows 7 FAQ
E-Mail FAQ
Netzwerk FAQ
Festplatten FAQ
Datenrettung FAQ
Bildbearbeitung FAQ

Top iPhone Apps
Computer Einsteiger
Die 5 besten...
Explipedia
Themen
Direktlinks

Neue Einträge
News einsenden News einschicken
Tipps einsenden Tipp einschicken

SN-LINKS

Suche
Befreundete Seiten
Top Seiten

Supportnet/Forum/Tabellenkalkulation



Supportnet/Forum/Tabellenkalkulation
von fedjo vom 21.08.2017, 17:32 Diese Seite den Supportnet Favoriten hinzufügen  Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden


Spalte mit Wert Zeile löschen

 (1185 Hits)

Hallo,
bräuchte mal Hilfe bei einem Makro.

Ist in der Spalte B ab Zeile 2 ein Wert enthalten,
dann soll die Zeile darüber gelöscht werden.

Gruß
fedjo


Antwort schreiben 50 Bonuspunkte

Antworten...
Antwort 1 von xlKing vom 21.08.2017, 22:15 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Fedjo,

davon ausgehend, dass du mit Wert eine Zahl meinst und in B1 keine solche steht, probiers mal mit:

Columns("B:B").SpecialCells(xlCellTypeConstants, 1).Offset(-1, 0).EntireRow.Delete

Gruß Mr. K.


Antwort noch nicht bewertet
Antwort 2 von xlKing vom 21.08.2017, 23:04 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Noch ein paar Anmerkungen dazu:

sollte der Laufzeitfehler 1004 "Keine Zellen gefunden" kommen, dann...

- ...sind keine Werte enthalten. Schreibe eine Zeile darüber noch die Zeile: On Error Resume next
- ...sind die Werte nicht manuell eingetragen sondern durch Formeln berechnet. Ersetze xlCellTypeConstants durch xlCellTypeFormulas
- ...sind die Werte keine Zahlen sondern z.B. Text. Ersetze die Zahl hinter xlCellTypeConstants durch 2 oder 3.

Gruß Mr. K.


Antwort noch nicht bewertet
Antwort 3 von fedjo vom 22.08.2017, 17:10 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Mr. K.
DANKE für die schnelle Antwort.
es funktioniert leider nicht.

Die Werte werden eingefügt als Text in Zahlen.

Spalte A Spalte B
012.01.08
012.01.08 09900100
012.01.09
012.01.09 09900101
012.01.10
012.01.10 09900102
012.01.11
012.01.11 09900103

Gruß
fedjo


Antwort noch nicht bewertet Als gute Antwort bewerten
Antwort 4 von xlKing vom 23.08.2017, 12:20 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Sicher hast du bereits meine Tipps aus Antwort 2 beachtet. Wenn du nun immer noch Probleme hast kann das höchstens noch daran liegen, dass du in B1 eine Spaltenüberschrift hast. Probiers mal mit der leicht abgewandelten Form.

Sub ZeilenLoeschen()

Range("B2:B" & UsedRange.Row + UsedRange.Rows.Count) _
.SpecialCells(xlCellTypeConstants, 3).Offset(-1, 0).EntireRow.Delete

End Sub


Gruß Mr. K.


Antwort noch nicht bewertet
Antwort 5 von xlKing vom 23.08.2017, 12:25 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Upps, das Hallo vergessen. War keine Absicht. Also Hallo nochmal ;-)

Antwort noch nicht bewertet
Antwort 6 von fedjo vom 23.08.2017, 17:01 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Mr. K.,
mit der Änderung funktioniert das Makro super.
DANE

Ich hätte aber noch eine Frage:

Wie kann ich immer einen bestimmten Wert in Spalte A
finden, und bis zum letzten Wert der Spalte A - Spalte D
kopieren und in F1 einfügen.

Der kopierte Bereich soll gelöscht werden.

Spalte A Salte B C D F1
013.01.01 09900098 5 9
013.01.01 09900099 4 4
013.01.02
013.01.02 09900099 5 5

Gruß
fedjo


Antwort noch nicht bewertet Als gute Antwort bewerten
Antwort 7 von xlKing vom 23.08.2017, 20:19 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Tachchen nochmal,

ja das ist schon auch möglich. Das solltest du aber erst nach dem Löschen der Zeilen ausführen, sonst löschst du versehentlich Zeilen in Spalte F mit. Kann es evtl. sein, dass der Wert 09900098 5 9 nicht in die Datenreihe passt? Du hast direkt darunter nochmal Werte in B:D stehen die zu dem gleichen Wert in Spalte A gehören.

Versuch mal den folgenden Code:
Sub ZeilenLoeschen()

Dim r As Range

Range("B2:B" & UsedRange.Row + UsedRange.Rows.Count) _
.SpecialCells(xlCellTypeConstants, 3).Offset(-1, 0).EntireRow.Delete

Neusuche:
Do
w = InputBox("Geben Sie einen Wert im Format 000.00.00 ein", "Wert eingeben", w)
If Val(w) > 0 Then w = Format(w, "000"".""00"".""00")
If w = "" Then Exit Sub
Loop Until Len(w) = 9

Set c = Columns("A:A").Find(w)
If Not c Is Nothing Then Set r = Range(c, Cells(Rows.Count, 1).End(xlUp).Offset(0, 3))
If Not r Is Nothing Then
  r.Copy
  Range("F1").PasteSpecial xlPasteAll
  r.ClearContents
Else
  MsgBox "Der Wert " & w & " wurde nicht gefunden"
  GoTo Neusuche
End If

End Sub
Gruß Mr. K.


Antwort noch nicht bewertet
Diese Antwort hat das Problem gelöst!
Antwort 8 von xlKing vom 23.08.2017, 20:21 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Ich vergaß noch zu erwähnen, dass du den Wert auch als Zahl eingeben kannst. Z.b. 130101

Antwort noch nicht bewertet
Antwort 9 von xlKing vom 23.08.2017, 20:33 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Ganz so optimal ist das leider immer noch nicht. Wenn du das Makro versehentlich erneut ausführst, löschst du zu viele Daten. Das kannst du aber verhindern, indem du den Teil vor Neusuche durch folgenden Code ersetzt.

Dim Executed As Boolean
Sub ZeilenLoeschen()

Dim r As Range

If Not Executed Then
  Range("B2:B" & UsedRange.Row + UsedRange.Rows.Count) _
  .SpecialCells(xlCellTypeConstants, 3).Offset(-1, 0).EntireRow.Delete
  Executed = True
End If
Mr. K.


Antwort noch nicht bewertet
Antwort 10 von fedjo vom 24.08.2017, 17:30 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Mr. K.,
hab das Makro ein wenig geändert funktioniert so gut.
Sheets("Bestand").Range("F2:I3000").ClearContents
Dim r As Range
w = " 013.01.01"
If Val(w) > 0 Then w = Format(w, "000"".""00"".""00")
If w = "" Then Exit Sub
Set c = Columns("A:A").Find(w)
If Not c Is Nothing Then Set r = Range(c, Cells(Rows.Count, 1).End(xlUp).Offset(0, 3))
If Not r Is Nothing Then
r.Copy
Range("F2").PasteSpecial xlPasteAll
r.ClearContents
End If
Sheets("Bestand").Range("A1").Select
DANE

Jetzt fehlt mir noch der Druckbereich von
A1:bis zum letzten Eintrag in F bis I

Gruß
fedjo


Antwort noch nicht bewertet Als gute Antwort bewerten
Antwort 11 von xlKing vom 25.08.2017, 12:07 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hi,

Kann es grad nicht testen aber sollte theoretisch mit

ActiveSheet.PageSetup.PrintArea = "$A$1:$I$" & r.Rows.Count

am Ende des Makros zu machen sein.


Antwort noch nicht bewertet
Antwort 12 von fedjo vom 25.08.2017, 14:37 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hi,
funktioniet leider nicht.

Gruß
fedjo


Antwort noch nicht bewertet Als gute Antwort bewerten
Antwort 13 von fedjo vom 25.08.2017, 16:54 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hi,
hab eine Lösung gefunden:

Private Sub CommandButton1_Click()
Dim s, F
s = 1
F = Cells(Rows.Count, s).End(xlUp).Row
ActiveSheet.PageSetup.PrintArea = "$A$1:$I$" & F
ActiveSheet.PrintOut
End Sub

Danke noch mal für deine Hilfe.
Gruß
fedjo


Antwort noch nicht bewertet Als gute Antwort bewerten




Hinweis
Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum.

MACHEN SIE IHRE WEBSITE ATTRAKTIVER
Sie haben eine eigene Website und wollen Ihre Besucher auf den Supportnet-Service aufmerksam machen? Kopieren Sie einfach den Quellcode in Ihre Seite und jeder Besucher Ihrer Seite kann direkt auf die Supportnet-Datenbank zugreifen.

My Supportnet


SUCHE

Gruppen im Forum
Betriebsysteme
Software
Hardware
Netzwerk
Programmierung
Sonstiges

Impressum © 1997-2015 SupportNet
Version: supportware 1.8.230E / 18.10.2010, Startzeit:Fri Dec 8 16:26:13 2017