Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
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

Makro erkennt keine optisch leere Zellen

Makro erkennt keine optisch leere Zellen
10.01.2013 13:17:20
Reiner
Hallo zusammen,
Hallo zusammen,
ich habe aus einer anderen Fragestellung heraus ein neues Thema eröffnet.
In dem Tabellenblatt werden die Zellen werden durch Formeln aus einem anderem Tabellenblatt gefüllt.
Damit das Makro leere Zellen erkennen kann habe ich den Bereich kopiert und mit "Inhalte einfügen" "Werte" "Leerzellen überspringen" wieder eingefügt.
So wie es aussieht sind die leeren Zellen für das Makro nicht leer und deshalb funktioniert es nicht.
Wenn ich die (optisch) leeren Zellen mit "Entfernen" lösche dann funktioniert alles.
Gibt es eine Möglichkeit das Makro so zu ändern, daß es auch nur optisch leere Zellen ausblendet?
Dann könnte ich mir das Kopieren - Werte einfügen ersparen.

Sub Leere_Spalten_ausblenden()
Dim lngLast As Long, rng As Range
Application.ScreenUpdating = False
lngLast = Cells(1, 1).CurrentRegion.Rows.Count
If lngLast > 4 Then
For Each rng In Range("A1:AE1") ' Endzelle eintragen
'    For Each rng In Range(Cells(1, 1), Cells(1, 1).End(xlToRight)) ' Sucht die erste leere  _
Zelle
rng.EntireColumn.Hidden = _
Application.CountA(rng.Offset(4).Resize(lngLast - 4)) = 0
Next
End If
End Sub

Alternativ wäre ein Tipp wie ich beim Werte einfügen etwas anders machen kann auch OK.
Vielen Grüße aus Hessen
Reiner

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro erkennt keine optisch leere Zellen
10.01.2013 15:06:37
Klaus
Hallo Reiner,
Hallo Reiner,
So wie es aussieht sind die leeren Zellen für das Makro nicht leer und deshalb funktioniert es nicht
Dann ist die Zelle auch nicht leer!
In einer leeren Zelle steht nichts.
Das Formelergebnis =WENN(WAHR;"etwas";"") schreibt nicht (nichts) in die Zelle, sondern einen leeren String. Und ein leerer String ist eben etwas!
Oder, frei nach Michael Ende ("Die unendliche Geschichte"): "Ein Loch ist immerhin noch ein Loch, und nicht nichts!"
Gibt es eine Möglichkeit das Makro so zu ändern, daß es auch nur optisch leere Zellen ausblendet?
ja, sicherlich. Aber ohne die Kenntniss deiner Datei bastel ich das nicht, da mir aus deinem Makro nicht ersichtlich wird nach welchem Kriterium ausgeblendet werden muss.
Dann könnte ich mir das Kopieren - Werte einfügen ersparen.
Erspars dir doch! Rekordere den gesamten Kopieren-Werte einfügen Vorgang einmal und flicke ihn VOR dein bestehendes Makro. Dann übernimmt VBA das für dich, du hast es dir gespart und dein Makro funktioniert weiterhin.
Grüße,
Klaus M.vdT.

Anzeige
AW: Makro erkennt keine optisch leere Zellen
11.01.2013 11:07:03
Reiner
Hallo Klaus,
leider konnte ich gestern kein File hochladen, so daß ersichtlich ist was das Makro bewirken soll.
Das abgespeckte File habe ich nun angehängt. https://www.herber.de/bbs/user/83352.xlsm
In der Zeile 5 steht die Formel mit der ich mir die Werte hole.
In der Zeile 6 ist die Kopie die ich mit Werte einfügen reinkopiert habe.
in der Zeile 7 + 8 habe ich die Werte manuell eingetragen.
Bein klicken auf den Ausblendebutton passiert nichts, außer wenn ich die beiden blau markierten Felder mit "Entf" lösche.
Dann kann die Spalte ausgeblendet werden da die gesamten Spalte von Zeile 5 bis Ende wirklich leer ist.
Wenn die Formeln ein Problem sind kann ich es die Werte auch manuell reinkopieren aber das Ausblendemakro ist mir wichtig.
Als letzte Alternative wäre vielleicht das reinkopieren als Makro zu machen, so daß das Makro ins Ordersheet schaut und nur wenn die entsprechende Zelle leer ist (dort wird manuell reingetippt) die werte ins Exportblatt kopiert.
(Das fände ich nicht so elegant weil der Code für die vielen Felder doch sehr lang wäre und ich zudem eine VBA Abfrage nach nichtleeren Feldern mit einer Kopierroutine noch nie zusammengeklickt habe)
Viele Grüße
Reiner (der heute im Homeoffice sitzt und vom privaten Rechner File hochladen kann)
.

Anzeige
AW: Makro erkennt keine optisch leere Zellen
14.01.2013 08:54:02
Klaus
Hi,
was soll den der quatsch in Workbook open?
    Worksheets("Ordersheet").Activate
'''        ActiveSheet.Protect "MeinPW"
ActiveSheet.Visible = True

Wenn das Blatt .visible=false ist, kannst du es nicht mit Activate ansprechen. Wenn es bereits .visible=true ist, musst du es nicht mehr sichtbar machen - das ist es dann schon.
Davon ab: auf "activate" und "select" verzichten wann immer es geht. Besser:
with worksheets("Ordnersheet")
''' .protect "MeinPW"
.visible = true
end with

Zum Thema:
Den Code zum ausblenden hab ich mal umgeschrieben:

Sub Leere_Spalten_ausblenden()
''' ActiveSheet.Unprotect "MeinPW"
Dim lngLast As Long, rng As Range
Dim rng2 As Range
Dim bBlenden As Boolean
Application.ScreenUpdating = False
lngLast = Cells(1, 1).CurrentRegion.Rows.Count
If lngLast > 4 Then
For Each rng In Range("A1:AE1") ' Endzelle eintragen
'    For Each rng In Range(Cells(1, 1), Cells(1, 1).End(xlToRight)) ' Sucht die erste leere  _
Zelle
bBlenden = True   'ausblende-variable: gehe erstmal davon aus, dass diese Spalte  _
ausgeblendet wird
For Each rng2 In rng.Offset(4).Resize(lngLast - 4) 'schaue in jeder Zelle der Spalte
If rng2.Value  "" Then                       'wenn eine der Zellen NICHT leer ( _
oder="") ist,
bBlenden = False                           'dann setzte die ausblenen-Variable  _
FALSCH
Exit For                                   'und beende die Prüfung für die  _
restlichen Zellen
End If
Next rng2
rng.EntireColumn.Hidden = bBlenden                   'Ausblenden - oder nicht
Next
End If
''' ActiveSheet.Protect "MeinPW"
End Sub
Sollte jetzt laufen, oder?
Grüße,
Klaus M.vdT.

Anzeige
AW: Makro erkennt keine optisch leere Zellen
14.01.2013 13:45:47
Reiner
Hallo Klaus,
das Makro funktioniert perfekt.
Ich bin immer wieder erstaunt, daß ihr VBA Künstler so etwas aus der Ferne mit ein paar Zeilen Code lösen könnt.
vielen Dank für deine Hilfe und einen guten Start in die neue Woche.
Viele Grüße aus Hessen
Reiner

Danke für die Rückmeldung!
14.01.2013 14:07:52
Klaus
Ich wünsche auch dir einen guten Wochenstart,
Liebe Grüße aus Estland,
Klaus M.vdT.

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige