Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
572to576
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
572to576
572to576
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

formel nur für vorhandene Einträge

formel nur für vorhandene Einträge
22.02.2005 11:24:58
Anton
Servus Zusammen,
ich habe zwei Datei-Listen abzugleichen.
Dazu habe ich ein Makro, dass schon gut Funktioniert.
-Aber die Date wird riesig und es dauert ewig.-
Es sind halt zuviele leere Einträge die generiert werden.
Meine Datei-Listen sind sehr verschieden lang (aber > 65000 habe ich nie).
Ich möchte dass die Formel nur für die zellen generieren,
die in der Zelle nebenan einen Dateinamen haben.
Bitte helft mir weiter.
Danke
Euer Anton
PS: hier der bisherige Code:

Sub Dateien_vergleichen()
'Holen der gefundenen Server-Dateien von Tabelle1
Sheets("gefiltert_nicht_gebookmarkt").Select
Range("A3:A60000").Select
Selection.Copy
Sheets("anwesenheitsprüfung").Select
Range("C2").Select
ActiveSheet.Paste
'Holen der der gebookmarkten Dateien von Tabelle2
Sheets("gefiltert_gebookmarkt").Select
Range("A3:A60000").Select
Selection.Copy
Sheets("anwesenheitsprüfung").Select
Range("A2").Select
ActiveSheet.Paste
'Vorbereiten des Vergleichs-Blatt
'Setzen der Überschriften
Sheets("anwesenheitsprüfung").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = "hier wird nach Dateien Gesucht"
Range("A1").Select
ActiveCell.FormulaR1C1 = "nach diesen Dateien wird gesucht"
Range("B1").Select
ActiveCell.FormulaR1C1 = "OK?"
Range("D1").Select
ActiveCell.FormulaR1C1 = "-leer-"
Range("E1").Select
ActiveCell.FormulaR1C1 = "Fundstücke"
Rows("1:1").Select
Selection.Font.Bold = True
'einfügen der Vergleichs-Formel
'=SVERWEIS(A2;C:C;1;FALSCH)
Range("E2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-4],C[-2],1,FALSE)"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E60000"), Type:=xlFillDefault
Range("E2:E60000").Select
'einfügen der Gefunden-Formel
'=WENN(ISTLEER(A2);" ";WENN(ISTFEHLER(E2);"<= nix da";"<= gefunden"))
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISBLANK(RC[-1]),"" "",IF(ISERROR(RC[3]),""<= nix da"",""<= gefunden""))"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B60000"), Type:=xlFillDefault
Range("B2:B60000").Select
Columns("A:B").Select
Columns("A:B").EntireColumn.AutoFit
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: formel nur für vorhandene Einträge
Marcl
Hallo Anton,
wie wäre es mit einer Loop Anweiseung. Z.B.
Jede Zelle in F nach unten durchsuchen und wenn Zelle voll, dann in E daneben die Formel sonst weiter nach untern bis 65001.
Gruß
Marcl
AW: formel nur für vorhandene Einträge
22.02.2005 11:47:06
Anton
Hallo Marcl,
heissen Dank für Deine schnelle Antwort.
Loop-Anweisungen kann ich leider genausowenig wie If-Abfragen.
Mit dem Makro-Rekorder kann ich (solala) umgehen.
Bei mir beisst's hier eben aus.
Kannst Du mir bitte weiterhelfen?
Servus,
Anton
AW: formel nur für vorhandene Einträge
Marcl
Hier ist der Rest Deines Makros,
ich habe die beiden Formeln zusammengefasst, wenn in F2 etwas steht, werden in E2 und B2 die beiden Formeln eingetragen, sonst bleiben die Felder leer.
Das Makro läuft bis 65001.

Sub DeinMakro()
Rows("1:1").Select
Selection.Font.Bold = True
formel1 = "=VLOOKUP(RC[-4],C[-2],1,FALSE)"
formel2 = "=IF(ISBLANK(RC[-1]),"" "",IF(ISERROR(RC[3]),""<= nix da"",""<= gefunden""))"
Range("F2").Select
Do While ActiveCell.Address <> "$F$65001"
If ActiveCell <> "" Then
'einfügen der Vergleichs-Formel
'=SVERWEIS(A2;C:C;1;FALSCH)
ActiveCell.Offset(0, -1) = formel1 ' Formel wird in Spalte E gleiche Zeile eingetragen
'einfügen der Gefunden-Formel
'=WENN(ISTLEER(A2);" ";WENN(ISTFEHLER(E2);"<= nix da";"<= gefunden"))
ActiveCell.Offset(0, -4) = formel2 ' Formel wird in Spalte B gleiche Zeile eingetragen
End If
ActiveCell.Offset(1, 0).Select
Loop
Columns("A:B").Select
Columns("A:B").EntireColumn.AutoFit
End Sub

Anzeige
AW: formel nur für vorhandene Einträge
22.02.2005 12:12:08
Anton
Hallo Marcl,
heißen Dank für Deine schnelle Hilfe.
Weltklasse was Du so alles weisst...
Werde nach meiner Mittagspause das Ding zusammen-zimmern und testen.
Bis bald,
Anton
AW: formel nur für vorhandene Einträge
22.02.2005 18:04:43
Anton
Hallo Marcl,
Habe heute Nachmittag das Ding zusammengezimmert und getestet.
;-( Leider ohne Erfolg.
Es Arbeitet zwar, aber da wo Dateien sind ist auch danach nix.
Kannst Du bitte nochmal drüberschauen?
Hier ist meine Datei:
https://www.herber.de/bbs/user/18533.xls
Vielen Dank
Bis bald,
Anton
AW: formel nur für vorhandene Einträge
Marcl
Moin moin,
ich bin von einer falcshen Suchspalte ausgegangen.
Hier das funktionierende Makro in ganzer Länge:

Sub alte_formel()
'Holen der gefundenen Server-Dateien von Tabelle1
Sheets("gefiltert_nicht_gebookmarkt").Select
Range("A3:A60000").Select
Selection.Copy
Sheets("anwesenheitsprüfung").Select
Range("C2").Select
ActiveSheet.Paste
'Holen der der gebookmarkten Dateien von Tabelle2
Sheets("gefiltert_gebookmarkt").Select
Range("A3:A60000").Select
Selection.Copy
Sheets("anwesenheitsprüfung").Select
Range("A2").Select
ActiveSheet.Paste
'Vorbereiten des Vergleichs-Blatt
'Setzen der Überschriften
Sheets("anwesenheitsprüfung").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = "hier wird nach Dateien Gesucht"
Range("A1").Select
ActiveCell.FormulaR1C1 = "nach diesen Dateien wird gesucht"
Range("B1").Select
ActiveCell.FormulaR1C1 = "OK?"
Range("D1").Select
ActiveCell.FormulaR1C1 = "-leer-"
Range("E1").Select
ActiveCell.FormulaR1C1 = "Fundstücke"
Rows("1:1").Select
Selection.Font.Bold = True
formel1 = "=VLOOKUP(RC[-4],C[-2],1,FALSE)"
'einfügen der Vergleichs-Formel
'=SVERWEIS(A2;C:C;1;FALSCH)
formel2 = "=IF(ISBLANK(RC[-1]),"" "",IF(ISERROR(RC[3]),""<= nix da"",""<= gefunden""))"
'einfügen der Gefunden-Formel
'=WENN(ISTLEER(A2);" ";WENN(ISTFEHLER(E2);"<= nix da";"<= gefunden"))
Range("A2").Select   'BezugsZelle für alle Aktionen = Zelle F2
Do While ActiveCell.Address <> "$A$65001"   'bis zur Zelle F65001 arbeiten
zell = ActiveCell.Address
If ActiveCell <> "" Then   'wenn auf eine leere Zelle gestoßen wird
ActiveCell.Offset(0, 4).Select
ActiveCell = formel1 ' Formel wird in Spalte E gleiche Zeile eingetragen
ActiveCell.Offset(0, -3).Select
ActiveCell = formel2 ' Formel wird in Spalte B gleiche Zeile eingetragen
End If
Range(zell).Offset(1, 0).Select
Loop
'Schönheitsoperation: automatische Spaltenbreite
Columns("A:B").Select
Columns("A:B").EntireColumn.AutoFit
End Sub

Gruß
Marcl
Anzeige
AW: formel nur für vorhandene Einträge
23.02.2005 09:40:24
Anton
Hallo Marcl,
heißen Dank.
Alles funktioniert wunderbar.
Danke.
Servus,
Anton

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige