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.

Like Operator
#21
Hallo,

Du willst doch im Bereich J1:Q2000 etwas anstellen.

Dann schreib auch überall J1:Q2000 und nicht I1:Q2000
Gruß Atilla
Antworten Top
#22
Das Problem ist, dass in diesem Bereich zwar "nichts" stehen kann, aber dennoch bleiben soll. Nur wenn in I2 "nichts" steht, soll auch J2 gelöscht werden. Wenn in J2 "nichts" steht und in I2 etwas anderes steht als "nichts", soll J2 auch erhalten bleiben.

Hab nun mittels deinem Code folgendes:

Code:
Sub DeleteAllExceptNichts()

  Dim Zeile As Long
  Dim ZeileMax As Long
  Dim Text As Variant
 
      With tblExport
     
          Text = "nichts"
          ZeileMax = .UsedRange.Rows.Count
         
              For Zeile = 2 To ZeileMax
             
                 If InStr(1, .Range("I" & Zeile).Value, Text, 1) = 0 Then
                   .Range("I" & Zeile) = ""
                 End If
                 
                 If InStr(1, .Range("I" & Zeile).Value, Text, 1) = 1 Then
                   .Range("J" & Zeile) = ""
                 End If

                 If InStr(1, .Range("I" & Zeile).Value, Text, 1) = 1 Then
                   .Range("K" & Zeile) = ""
                 End If

                 If InStr(1, .Range("I" & Zeile).Value, Text, 1) = 1 Then
                   .Range("L" & Zeile) = ""
                 End If
                 
                 If InStr(1, .Range("I" & Zeile).Value, Text, 1) = 1 Then
                   .Range("M" & Zeile) = ""
                 End If
                 
                 If InStr(1, .Range("I" & Zeile).Value, Text, 1) = 1 Then
                   .Range("N" & Zeile) = ""
                 End If

                 If InStr(1, .Range("I" & Zeile).Value, Text, 1) = 1 Then
                   .Range("O" & Zeile) = ""
                 End If
                 
                 If InStr(1, .Range("I" & Zeile).Value, Text, 1) = 1 Then
                   .Range("P" & Zeile) = ""
                 End If

                 If InStr(1, .Range("I" & Zeile).Value, Text, 1) = 1 Then
                   .Range("Q" & Zeile) = ""
                 End If

              Next Zeile
                                                                                           
      End With

End Sub
 
Erfüllt seinen Szweck, ist aber wohl weder effizient noch schön.
Weiß nun nicht wie ich noch eine Variable für die Spalten J:Q definieren kann.
Antworten Top
#23
Moin!
Bevor wir hier bei #50 landen …
Beschreibe mal konkret, was Du willst.
Gerne auch iVm mit einer konkreten Datei.

Und komme nicht mit "nichts"!
(unfreiwillig komisch, der letzte Satz)

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
#24
Hallo zusammen,

ich gebe dem Ganzen noch eine Chance:


Code:
   [I1:I2000] = [if(iserr(search("nichts",I1:I2000)),"",I1:I2000)]
   [J1:Q2000] = [if(iserr(search("nichts",J1:Q2000)),J1:Q2000,"")]
Gruß Atilla
Antworten Top
#25
schau mal


Angehängte Dateien
.xlsb   __Dislike.xlsb (Größe: 13,29 KB / Downloads: 4)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#26
Hallo

anbei dein eigener Code zurück, bei mir klappt er einwandfrei.  Mit einem Effekt, der passieren kann!!  Nicht muss!!
Der Befehl -.UsedRange.Rows.Count- brachte mir mir in einer neuen Tabelle zuerst ein falsches Ergebnis, die letzten drei Zeilen wurden nicht gelöscht!! Das verblüffte mich als alter Praktiker sehr, und so testete ich es dreimal, bis ich diesen ulkigen Effekt schlagartig begriff!!

Wenn bei Used.Range.Row.Count in den ersten Zeilen noch nie ein Wert gestanden hat, weil man mit Zeile 3 oder 4 anfaengt, dann stimmt der Wert von Rows.Count nicht!  Man beachte den kleinen, aber feinen Unterschied bei Excel!

mfg  Gast 123

Code:
Sub DeleteAllExceptNichts()
  Dim Zeile As Long
  Dim ZeileMax As Long
  Dim Text As Variant
 
  With tblExport
      Text = "*nichts*"
      ZeileMax = .UsedRange.Rows.Count
          For Zeile = 2 To ZeileMax
              If LCase(.Range("I" & Zeile)) Like Text Then _
              Else .Range("I" & Zeile) = ""
          Next Zeile
  End With
End Sub
Antworten Top


Gehe zu:


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