Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1556to1560
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

irgendeine Zeile/Spalte ausgeblendet?

irgendeine Zeile/Spalte ausgeblendet?
22.05.2017 14:22:02
Miha
Hallo zusammen,
gibt es eine Möglichkeit per VBA festzustellen, ob irgendeine (mindestens eine) Zeile bzw. Spalte des Tabellenblatts ausgeblendet ist ohne alle Zeilen/Spalten über eine Schleife einzeln abfragen zu müssen?
Vielen Dank schon mal im Voraus,
MiHa

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: irgendeine Zeile/Spalte ausgeblendet?
22.05.2017 15:46:19
Michael
Hallo!
Ja, zB so, als Idee, musst Du für Dich eben etwas anpassen:
Sub a()
Dim Ws As Worksheet: Set Ws = ActiveSheet
Dim r As Range, br As Boolean, bc As Boolean
With Ws
Set r = .Range(.Cells(1, 1), .Cells(1, .Columns.Count))
If r.SpecialCells(xlCellTypeVisible).Count 
LG
Michael
AW: irgendeine Zeile/Spalte ausgeblendet?
22.05.2017 16:53:06
MiHa
Hallo Michael,
die Lösung gefällt mir, leider kommt es aber bei ...SpecialCells(xlCellTypeVisible).Count.... zu einem Laufzeitfehler mit dem Hinweis: "Dieser Befehl kann für ein geschütztes Blatt nicht verwendet werden. ..."
Das habe ich leider in der Ausgangsfrage vergessen zu erwähnen, dass das Blatt mit mir nicht bekanntem Passwort geschützt sein kann. Aber ich will Zeilen/Spalten ja auch gar nicht einblenden, ich will ja nur wissen, ob welche ausgeblendet sind.
Schon mal vielen Dank. Hat noch jemand eine Idee?
Viele Grüße, MiHa
Anzeige
mal eine bescheidene Frage ...
22.05.2017 17:26:30
Matthias
Hallo
Sieht man das denn nicht, wenn die Zeile/Spaltenbeschriftung aktiviert ist
Das fällt doch auf, wenn eine fortlaufende Nummerierung fehlt.
Ich lass offen
Gruß Matthias
AW: mal eine bescheidene Frage ...
22.05.2017 18:23:24
MiHa
Hallo Matthias,
es kann sich um sehr große Datensätze (viele Zeilen, viele Spalten, beide Anzahlen variabel) handeln, so dass man da leicht etwas übersieht - außerdem soll das automatisiert ablaufen, ich will das nicht per Auge prüfen müssen.
Zum Hintergrund: Die Daten aus Dateien externer Herkunft sollen in meine eigene Excel-Datei eingelesen werden. Ich benutze zur Ermittlung der letzten benutzen Zeilen bzw. Spalten (nach eingehender Prüfung diverser Faktoren) .End(xlUp).Row und .End(xlToLeft).Column . Sollten an den Rändern des Datenbereichs Zeilen bzw. Spalten ausgeblendet sein, bekomme ich hier aber falsche Zeilen bzw. Spalten.
Ich verstehe ehrlich gesagt nicht, wieso .Count in einem geschützten Blatt hier nicht erlaubt ist, per Hand kann ich in einem geschützen Blatt ja auch zählen. Schade.
Würde mich freuen, wenn es da noch eine einfache Möglichkeit geben würde ...
Viele Grüße, MiHa
Anzeige
AW:Per Formel bzw Worksheetfunction.
22.05.2017 19:40:41
Daniel
Hi
wenn es eine Spalte gibt, in der jede zelle befüllt ist, kannst du das so überprüfen:
If Worksheetfunction.CountA(Columns(1)) = Worksheefunction.SubTotal(103,Columns(1)) Then Msgbox "nichts ausgeblendet"
das entspricht der Formel: =Wenn(Anzahl2(A:A)=Teilergebnis(103;A:A);"nichts ausgeblendet";"")
Gruß Daniel
Columns(1) dann braucht er ja doch ne Schleife
22.05.2017 19:53:41
Matthias
Hallo
Die Frage war ohne Schleife
Es geht nicht darum ob eine Spalte in jeder Zelle gefüllt ist.
Er will ja alle Zeilen/Spalten prüfen, ob eine ausgeblendet ist.
Dann müsste er eine Schleife starten, was er nicht will.
Du prüfst nur Spalte(1)
Gruß Matthias
Anzeige
AW: Columns(1) dann braucht er ja doch ne Schleife
22.05.2017 22:52:10
Daniel
Hi Matthias
nein, Schleife braucht man nicht.
um herauszufinden, ob eine Zeile ausgeblendet ist es reicht ja, in einer Spalte zu prüfen, ob die Anzahl der sichtbaren Zellen gleich der Anzahl der gesamtzellen in der Spalte ist.
Leider kann man das per Formel nur dann prüfen, wenn die Zellen auch einen Inhalt haben.
Man kann damit auch nur auf ausgeblendete Zeilen, aber nicht auf ausgeblendete Spalten prüfen.
Gruß Daniel
Laufzeitfehler: 424 owT
23.05.2017 16:27:06
Matthias
AW: Laufzeitfehler: 424 owT
24.05.2017 08:48:46
MiHa
Hallo Daniel und Matthias,
danke für Euren Input. Für's Erste habe ich jetzt doch auf eine Schleifenlösung zurückgegriffen.
Ich lass die Frage aber mal offen.
Gruß, MiHa
Anzeige
AW: Noch eine letzte Idee...
24.05.2017 09:58:42
Michael
Hallo allerseits!
Folgende Idee um das OHNE Schleife herauszufinden (auf einem geschützten Blatt), allerdings unter der Voraussetzung, dass entweder
a) alle Spalten/Zeilen im Blatt gleich breit/hoch sind
ODER
b) zumindest bekannt ist, wie breit/hoch der verwendete Bereich ist, WENN alles eingeblendet ist.
Dann könnte man das rechnerisch ermitteln, hier jetzt mal für die Variante a):
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.Worksheets(1)
Dim c As Range: Set c = Ws.UsedRange
Dim cRef As Range: Set cRef = Ws.Range("A1")
If c.Width 
LG
Michael
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige