Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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
Inhaltsverzeichnis

Bestimmte Zellen in Unterschiedlichen Datein löschen

Bestimmte Zellen in Unterschiedlichen Datein löschen
11.11.2019 15:09:09
Niels
Hallo Zusammen,
ich komme leider mit dem folgenden VBA Makro nicht weiter.
Ich habe mehrere Datei die immer aus den selben zwei Arbeitsblättern besteht. Je nach Datei möchte ich unterschiedliche Bereich in den Arbeitsblättern löschen durch die Tastenkombination "STRG + d" aber nur wenn die Datei geöffnet ist.
Hier zu habe ich mir folgendes Makro gemacht. Dies funktioniert leider nicht so wie ich möchte. _

Sub Lösche_in_Vorlage()
' Inhalt löschen
' Lösche Inhalt in Bestimmten Zellen
' Tastenkombination: Strg+d
If ActiveWorkbook.Name = ("Vorlage Küche") Then
Sheets("1.Erfassung Umsätze").Select
Range("F3:F5,C12:H20,C23:H31,C34:H42,C45:H53,C56:H64,C67:H75,C78:H86").Select
Selection.ClearContents
Sheets("2.Erfassung Ware").Select
Range("E10:E65").Select
Selection.ClearContents
Else: ActiveWorkbook.Name = ("Vorlage Verkauf")
Sheets("1.Erfassung Umsätze").Select
Range("C11:D20,F11:G12,C23:D32,F23:G24,C35:D44,F35:G36,C47:D56,F47:G48,C59:D68,F59:G60,C71:  _
_
_
D80,F71:G72,C83:D92,F83:G84").Select
Selection.ClearContents
Sheets("2.Erfassung Ware").Select
Range("E10:E65").Select
Selection.ClearContents
End If
End Sub

Wenn ich den den unteren Teil ab Else bis vor End If entferne und das Makro ausführe passiert nichts. Bekomme nicht mal einen Fehler.
Wenn ich einen Lösungsvorschlag habt wäre das super. Am besten noch mit Lösungsweg damit ich verstehe welchen Denkfehler ich mache.
Vielen Danke
Gruß Niels

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Zellen in Unterschiedlichen Datein löschen
11.11.2019 15:28:21
Hajo_Zi
Hallo Niels,
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Das ist nur meine Meinung zu dem Thema.
ich hätte den Code ohne Select ge,acht.
Option Explicit
Sub Lösche_in_Vorlage()
' Inhalt löschen
' Lösche Inhalt in Bestimmten Zellen
' Tastenkombination: Strg+d
If ActiveWorkbook.Name = ("Vorlage Küche") Then
Sheets("1.Erfassung Umsätze").Range("F3:F5,C12:H20,C23:H31," _
& "C34:H42,C45:H53,C56:H64,C67:H75,C78:H86").ClearContents
Sheets("2.Erfassung Ware").Range("E10:E65").ClearContents
Else: ActiveWorkbook.Name = ("Vorlage Verkauf")
Sheets("1.Erfassung Umsätze").Range("C11:D20,F11:G12,C23:D32,F23:G24,C35:D44," _
& "F35:G36,C47:D56,F47:G48,C59:D68,F59:G60,C71:D80 , F71: G72 , C83: D92 ," _
& "F83: G84 ").ClearContents
Sheets("2.Erfassung Ware").Range("E10:E65").ClearContents
End If
End Sub
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?

Anzeige
AW: Bestimmte Zellen in Unterschiedlichen Datein löschen
11.11.2019 16:01:44
Regina
Hi,
ich vermute, dass Du in der Else-zeile den fehler hast. Hier willst Du ja wohl prüfen, ob die andere Datei geöffnet ist?
Dann muss das so aussehen:
    ElseIf ActiveWorkbook.Name = ("Vorlage Verkauf") Then
Ansonsten hat Hajo recht, auf die Selects kann (und sollte) man verzeichten.
gruß
Regina
AW: Bestimmte Zellen in Unterschiedlichen Datein löschen
11.11.2019 16:57:32
volti
Hallo Niels,
Du solltest, wie HaJo schon schrieb auf Select verzichten und den Part "Else:" überarbeiten.
Außerdem gibt die Abfrage ActiveWorkbook.Name auch die Erweiterung der Datei mitzurück. Diese hast Du aber in Deiner If-Klausel nicht mit drin, so dass weder If noch Else jemals wahr werden können.
Daher passiert auch nix.
Hier mal ein angepasster Code (leider ungetestet, weil ich die Datei nicht habe), der Dich hoffentlich weiter bringt.
Sub Lösche_in_Vorlage()
  '
  ' Inhalt löschen
  ' Lösche Inhalt in Bestimmten Zellen
  '
  ' Tastenkombination: Strg+d
  '
  With ActiveWorkbook
    If .Name Like ("Vorlage Küche.xls*") Then
      .Sheets("1.Erfassung Umsätze").Range("F3:F5,C12:H20,C23:H31,C34:H42,C45:H53,C56:H64,C67:H75,C78:H86").ClearContents
      .Sheets("2.Erfassung Ware").Range("E10:E65").ClearContents
     
    ElseIf .Name Like ("Vorlage Verkauf.xls*") Then
     .Sheets("1.Erfassung Umsätze").Range("C11:D20,F11:G12,C23:D32,F23:G24,C35:D44,F35:G36,C47:D56,F47:G48,C59:D68,F59:G60,C71:D80,F71:G72,C83:D92 ,F83:G84").ClearContents
     .Sheets("2.Erfassung Ware").Range("E10:E65").ClearContents
    End If
  End With
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: Bestimmte Zellen in Unterschiedlichen Datein löschen
11.11.2019 17:01:46
Nepumuk
Hallo Niels,
würde ich so machen:
Public Sub Lösche_in_Vorlage()
    Dim objWorkbook As Workbook
    For Each objWorkbook In Application.Workbooks
        If objWorkbook.Name = "Vorlage Küche.xlsx" Then 'Extension anpassen !!!
            With objWorkbook
                Call .Worksheets("1.Erfassung Umsätze").Range("F3:F5,C12:H20," & _
                    "C23:H31,C34:H42,C45:H53,C56:H64,C67:H75,C78:H86").ClearContents
            End With
        ElseIf objWorkbook.Name = "Vorlage Verkauf.xlsx" Then 'Extension anpassen !!!
            With objWorkbook
                Call Worksheets("1.Erfassung Umsätze").Range("C11:D20,F11:G12,C23:D32," & _
                    "F23:G24,C35:D44,F35:G36,C47:D56,F47:G48,C59:D68,F59:G60,C71:D80," & _
                    "F71:G72,C83:D92,F83:G84").ClearContents
                Call Worksheets("2.Erfassung Ware").Range("E10:E65").ClearContents
            End With
        End If
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: Bestimmte Zellen in Unterschiedlichen Datein löschen
11.11.2019 17:17:48
Nepumuk
Ooooooooops,
da fehlt noch eine Zeile und 2 Punkte. Also:
Public Sub Lösche_in_Vorlage()
    Dim objWorkbook As Workbook
    For Each objWorkbook In Application.Workbooks
        If objWorkbook.Name = "Vorlage Küche.xlsx" Then 'Extension anpassen !!!
            With objWorkbook
                Call .Worksheets("1.Erfassung Umsätze").Range("F3:F5,C12:H20," & _
                    "C23:H31,C34:H42,C45:H53,C56:H64,C67:H75,C78:H86").ClearContents
                Call .Worksheets("2.Erfassung Ware").Range("E10:E65").ClearContents
            End With
        ElseIf objWorkbook.Name = "Vorlage Verkauf.xlsx" Then 'Extension anpassen !!!
            With objWorkbook
                Call .Worksheets("1.Erfassung Umsätze").Range("C11:D20,F11:G12,C23:D32," & _
                    "F23:G24,C35:D44,F35:G36,C47:D56,F47:G48,C59:D68,F59:G60,C71:D80," & _
                    "F71:G72,C83:D92,F83:G84").ClearContents
                Call .Worksheets("2.Erfassung Ware").Range("E10:E65").ClearContents
            End With
        End If
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: Bestimmte Zellen in Unterschiedlichen Datein löschen
11.11.2019 17:35:54
Regina
Hi Nepumuk,
mal eine interssierte Rückfrage:
Wozu das "Call"?
Gruß
Regina
AW: Bestimmte Zellen in Unterschiedlichen Datein löschen
11.11.2019 17:47:31
Nepumuk
Hallo Regina,
weil ich alle Methoden per Call aufrufe, außer Funktionen von denen ich einen Rückgabewert auswerten will. Habe ich mir angewöhnt.
Gruß
Nepumuk
AW: Bestimmte Zellen in Unterschiedlichen Datein löschen
12.11.2019 14:09:38
Niels
Hallo Zusammen,
vielen dank für eure Hilfe und die schnellen Antworten.
Habe alles getestet und jede variante Funktioniert.
Die Dateien kann ich leider nicht hochladen, da es Firmeninterne Dokumente sind. Werde aber für die Zukunft den Bereich als A1:B2 angeben und als Dateiname Test1 usw. wenn es hierdurch einfacher wird.
Die Selects wegzulassen spart Zeit, da ich den Bereich mit Range direkt definiere.
Noch nicht ganz ersichtlich für mich ist der Unterschied zwischen den beiden folgenden Möglichkeiten, da das Ergebnis das gleiche ist.
With ActiveWorkbook
If .Name Like ("Vorlage Küche.xlsm") Then

und
Dim objWorkbook As Workbook
For Each objWorkbook In Application.Workbooks
If objWorkbook.Name = "Vorlage Küche.xlsx" Then

Gruß
Niels
Anzeige
AW: Bestimmte Zellen in Unterschiedlichen Datein löschen
12.11.2019 14:40:15
Nepumuk
Hallo Niels,
der Unterschied: Mit meiner Methode muss die Mappe "Vorlage Küche" nicht unbedingt die aktive Mappe sein.
Gruß
Nepumuk

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige