Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Zellbereich mit VBA und UserForm löschen



Excel-Version: 9.0 (Office 2000)

Betrifft: Zellbereich mit VBA und UserForm löschen
von: Udo Walther
Geschrieben am: 31.05.2002 - 14:57:29

Hallo,
Mir qualmt hier schon der Kopf.

Ich möchte einen festen Bereich im Sheet "Arbeiter" löschen. Der gesuchte Bereich wird mit einer UserForm Namens "ArbeiterAustragenAusBox" ausgewählt und übergeben.
Nach nunmehr drei Tagen weiß ich keinen Weg mehr.
Könnt Ihr mir helfen?

Private Sub ArbeiterAustragen_OK_Click()
Dim ArbInt, ArbVar
Dim sstart As Range, sende As Range
ArbInt = ArbeiterAustragenAusBox
ArbVar = CVar(ArbInt)
Set b = ArbeiterAustragenAusBox
Set sstart = Range("A:A").Find(b).Select
Set sende = sstart.End(xlToRight)
Range(sstart, sende).Clear
End Sub

Was mache ich nur falsch??


Gruß
Udo


  

Re: Zellbereich mit VBA und UserForm löschen
von: Rainer
Geschrieben am: 31.05.2002 - 15:11:11

Lieber Udo!

Probiere folgendes aus:

'Bereich festlegen und Namen geben
ActiveWorkbook.Names.Add Name:="Bereichsname", RefersToR1C1:= _
"=Tabelle1!R1C1:R5C5" 'kanns du flexibel mit Variablen versehen

'Bereich löschen
Range("Bereichsname").Clear

'Name löschen
Application.Names("Bereichsname").Delete


Lieben Gruß
Rainer

  

Re: Zellbereich mit VBA und UserForm löschen
von: Udo Walther
Geschrieben am: 31.05.2002 - 15:14:43

Hallo Rainer

Das Problem ist, dass ich nur eine Zeile (mit dem vorher ausgesuchten Namen) löschen will. Nicht mehrere Zeilen.

Gruß
Udo


  

Re: Zellbereich mit VBA und UserForm löschen
von: WernerB.
Geschrieben am: 31.05.2002 - 15:38:18

Hallo Udo,

mal als Denkanstoß:


Option Explicit
Private Sub ArbeiterAustragen_OK_Click()
Dim As String, za1 As String, za2 As String
Dim ArbInt, ArbVar
Dim sstart As Range, sende As Range
    ArbInt = ArbeiterAustragenAusBox
    ArbVar = CVar(ArbInt)
    Set b = ArbeiterAustragenAusBox
    Set sstart = Range("A:A").Find(b, lookat:=xlPart)
    za1 = sstart.Address(False, False)
    za2 = Cells(sstart.Row, sstart.Column).End(xlToRight).Address(False, False)
    Range(za1 & ":" & za2).Clear
End Sub

Viel Erfolg wünscht
WernerB.
  

Re: Zellbereich mit VBA und UserForm löschen
von: Udo Walther
Geschrieben am: 31.05.2002 - 15:56:56

Hallo Werner

leider bekomme ich immer die Fehlermeldung "Objekt erforderlich"
bei "Set b = ArbeiterAustragenAusBox"

Gruß
Udo


  

Re: Zellbereich mit VBA und UserForm löschen
von: WernerB.
Geschrieben am: 31.05.2002 - 16:06:07

Hallo Udo,

da ich nicht wissen kann, was 'ArbeiterAustragenAusBox' für eine Variable ist und welchen Inhalt sie hat, kann ich dazu leider keine Aussage machen.
Beim Testen habe ich eine String-Variable daraus gemacht und sie mit einem Dummy-Wert belegt (deshalb steht auch noch:

'Dim b As String'

am Anfang der Sub).
Beim Suchen (Find) wird normalerweise ein String als Suchwert erwartet.

MfG
WernerB.

  

Re: Zellbereich mit VBA und UserForm löschen
von: Udo Walther
Geschrieben am: 31.05.2002 - 16:10:16

Hallo Werner,

Übergeben werden auch "Sting-Werte", in Form von z.B.:
"D. Schäfer"
"U. Walther "
usw.

Gruß
Udo

  

Re: Zellbereich mit VBA und UserForm löschen
von: WernerB.
Geschrieben am: 31.05.2002 - 16:18:32

Hallo Udo,

lasse doch mal das 'Set' weg und schreibe nur:

b = ArbeiterAustragenAusBox


MfG
WernerB.

  

Re: Zellbereich mit VBA und UserForm löschen
von: Udo Walther
Geschrieben am: 31.05.2002 - 16:21:09

Hallo Werner,

leider bekomme ich dann die Fehlermeldung "Objektvariable oder With-Blockvariable nicht festgelegt".

Gruß
Udo


  

Re: Zellbereich mit VBA und UserForm löschen
von: Udo Walther
Geschrieben am: 31.05.2002 - 16:22:34

sorry,

in der Zeile "za1 = sstart.Address(False, False)"

Gruß
Udo


  

Re: Zellbereich mit VBA und UserForm löschen
von: Rainer
Geschrieben am: 31.05.2002 - 16:27:57

Lieber Udo!

Hilft dir das vielleicht?


' Zählt die Anzahl der Zeilen in Tabelle1 (ohne Leerzeilen!) und
' löscht alle Zeilen (gesamt), in denen der Name vorkommt.
' Fängt von unten an!
For i = Sheets(1).Cells(1, 1).CurrentRegion.Rows.Count To Step -1
    If Sheets(1).Cells(i, 1).Value = Userform1.ArbeiterAustragenAusBox.Value Then
        Cells(i, 1).EntireRow.Delete
    End If
Next i

Lieben Gruß
Rainer

P.S. Habe erst wieder in der Nacht Zeit!


  

Re: Zellbereich mit VBA und UserForm löschen
von: WernerB.
Geschrieben am: 31.05.2002 - 16:30:59

Hallo Udo,

vielleicht wurde beim Suchen der Suchbegriff nicht gefunden.
Deshalb diese Version:


Option Explicit
Private Sub ArbeiterAustragen_OK_Click()
Dim As String, za1 As String, za2 As String
Dim ArbInt, ArbVar
Dim sstart As Range, sende As Range
    ArbInt = ArbeiterAustragenAusBox
    ArbVar = CVar(ArbInt)
    b = ArbeiterAustragenAusBox
    Set sstart = Range("A:A").Find(b, lookat:=xlPart)
    If Not sstart Is Nothing Then
      za1 = sstart.Address(False, False)
      za2 = Cells(sstart.Row, sstart.Column).End(xlToRight).Address(False, False)
      Range(za1 & ":" & za2).Clear
    Else
      MsgBox "Der Suchbegriff '" & s & "' wurde nicht gefunden !", _
        vbExclamation, "Hinweis für " & Application.UserName & ":"
      Exit Sub
    End If
End Sub

Viel Erfolg wünscht
WernerB.
  

Re: Zellbereich mit VBA und UserForm löschen
von: Udo Walther
Geschrieben am: 31.05.2002 - 16:34:56

Hallo Werner,

Was für eine Variable ist " s "
( Fehlermeldung:"Fehler beim Konoilieren. Variable nicht definiert") in der Zeile
"MsgBox "Der Suchbegriff '" & s & "' wurde nicht gefund....."

Gruß Udo

  

Re: Zellbereich mit VBA und UserForm löschen
von: Udo Walther
Geschrieben am: 31.05.2002 - 16:36:02

sorry,

Kompilieren natürlich :-)

Gruß
Udo

  

Korrektur
von: WernerB.
Geschrieben am: 31.05.2002 - 16:36:31

Hallo Udo,

ersetze bitte das 's' in dieser Zeile durch ein 'b':
MsgBox "Der Suchbegriff '" & s & "' wurde nicht gefunden !", _

Richtig wäre also:
MsgBox "Der Suchbegriff '" & b & "' wurde nicht gefunden !", _


WernerB.

  

Re: Korrektur
von: Udo Walther
Geschrieben am: 31.05.2002 - 16:40:52

Hallo Werner,

jetzt kann das Script den Namen (ArbeiterAustragenAusBox) nicht finden, obwohl er definitif vorhanden ist.

Wenn ich darf, würde ich Dir gern meine Exceldatei zumailen, dann kannst Du es ja "vor Ort" mal ausproboeren.
Einverstanden ?

Gruß
Udo


  

Re: Korrektur
von: Udo Walther
Geschrieben am: 31.05.2002 - 16:42:21

es sind nur 334 kb.

  

o.k. (o.T.)
von: WernerB.
Geschrieben am: 31.05.2002 - 16:55:30


  

Re: o.k. (o.T.)
von: Udo Walther
Geschrieben am: 31.05.2002 - 16:58:08

Hallo Werner,

Ich brauche Deine e-mail Adresse
Gruß
Udo


  

Re: o.k. (o.T.)
von: Udo Walther
Geschrieben am: 31.05.2002 - 17:04:48

Hallo nochmal,

wenn Du Deine e-mail Adresse hier nicht öffentlich reinschreiben möchtest, dann kannst Du mir ja eine mail schicken, dann kann ich den "Antworten" Button drücken.

Gruß
Udo


  

Re: o.k. (o.T.)
von: Udo Walther
Geschrieben am: 31.05.2002 - 17:13:20

meine e-mail Adresse lautet :

walther@ergste.de

Gruß
Udo

  

Re: o.k. (o.T.)
von: WernerB.
Geschrieben am: 31.05.2002 - 17:16:38

Hallo Udo,

ich habe die e-mail um 16:53 Uhr abgeschickt.

WernerB.

  

Re: o.k. (o.T.)
von: Udo Walther
Geschrieben am: 31.05.2002 - 17:18:31

Ja,

Ist gerade (17.17 Uhr angekommen.

Sorry und Gruß
Udo


  

Re: o.k. (o.T.)
von: Udo Walther
Geschrieben am: 31.05.2002 - 17:22:44

Hallo Werner,

habe die Datei im Excel 97 Format gespeichert. jetzt ist sie 583 kb groß.

Gruß
Udo


  

Datei um 17,23 abgeschickt
von: Udo Walther
Geschrieben am: 31.05.2002 - 17:24:06

Hallo Werner,

siehe Betreff.

Gruß
Udo


  

und Danke nochmal !!!
von: Udo Walther
Geschrieben am: 31.05.2002 - 17:26:35


  

Re: Zellbereich mit VBA und UserForm löschen
von: WernerB.
Geschrieben am: 31.05.2002 - 18:43:21

Hallo Udo,

ich habe zwei Probleme in den Griff bekommen:

- Dem Makro habe ich beigebracht, dass es nur mit dem Tabellenblatt "Arbeiter" arbeiten soll.

- In der Spalte A (Blatt "Arbeiter") stehen Formeln; die Suche ging deswegen ins Leere - ist jetzt korrigiert.

Ferner habe ich das Makro entrümpelt und ein paar Schönheitsoperationen vorgenommen. Bei mir klappt es jetzt wunderbar.

Nun kannst Du es ja mal testen:


Option Explicit
Private Sub ArbeiterAustragen_OK_Click()

Dim SuBe As Range
Dim As String, za1 As String, za2 As String
Dim laR As Long
Const tba As String = "Arbeiter"

    s = ArbeiterAustragenAusBox
    laR = Sheets(tba).Cells(Rows.Count, 1).End(xlUp).Row
    Set SuBe = Sheets(tba).Range("A2:A" & laR).Find(s, LookIn:=xlValues, LookAt:=xlPart)

    If Not SuBe Is Nothing Then
      za1 = SuBe.Address(False, False)
      za2 = Sheets(tba).Cells(SuBe.Row, SuBe.Column).End(xlToRight).Address(False, False)
      Sheets(tba).Range(za1 & ":" & za2).ClearContents
    Else
      MsgBox "Der Suchbegriff '" & s & "' wurde nicht gefunden !", _
        vbExclamation, "Hinweis für " & Application.UserName & ":"
      Exit Sub
    End If

End Sub


Viel Erfolg wünscht
WernerB.
  

Daaaaannke !!!!!
von: Udo Walther
Geschrieben am: 31.05.2002 - 19:42:59

Hallo Werner,

ersteinmal viiiiiiiiielen Dank für Deine Hilfe. Das Makro funktioniert super !

Ich werde es mir noch mal genau durchschauen, damit ich aus meinen Fehlern auch noch etwas lernen kann.

Nur gut, dass es noch wirkliche "Könner" gibt, die einem helfen.

Vielen Dank nochmal.

Gruß
Udo


 

Beiträge aus den Excel-Beispielen zum Thema "Zellbereich mit VBA und UserForm löschen"