Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Code gesucht!
#11
Hi,

für das erste Problem:


Code:
=WENN(SPALTE(Rohdaten!A1)>ZÄHLENWENN(Rohdaten!$A$7:$A$30;$A8);"";1)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • cysu11
Antworten Top
#12
Hallo Alexandra,

zu 1.:

Wenn die Eingangsdaten nicht sortiert sind muss ich die interne "Collection" sortieren. In der Anlage die Lösung mit einem Quicksort aus dem Internet. (https://excelmacromastery.com/excel-vba-...Collection)

zu 2.:

Das Programm benötigt zwei benannte "Bereiche".

Zum Einen den benannten Bereich "Liste" für die Eingangsdaten.
Wenn sich Zahl der Eingangsdaten ändert, muss man darauf achten, dass auch der Bereich angepasst wird. Das geht indem man
a) den benannten Bereich über "Formeln">"Namensmanager" manuell anpasst oder
b) nur Zeilen nach der ersten und vor der letzten Zeile einfügt oder
c) den Bereich in eine "intelligente" Tabelle umwandelt (Strg+T) und diese Tabelle über den Namensmanager "Liste" nennt.

Zum Anderen eine benannte Zelle "Ausgabe" ab der die Ergebnisse geschrieben werden.

Beide "Bereiche" kann man beliebig in der Datei verschieben (ausschneiden und einfügen, nicht kopieren; auch in verschiedene Blätter).


Angehängte Dateien
.xlsm   testVA - Kopie.xlsm (Größe: 27,61 KB / Downloads: 8)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#13
Hi

Hier mal die PQ-Lösung für Interessierte.
Der Code ist wesentlich umfangreicher als der VBA-Code.
Bestimmt steckt da noch Optimierungspotential drin.


Angehängte Dateien
.xlsm   clever_excel_forum_10745.xlsm (Größe: 33,52 KB / Downloads: 6)
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • cysu11
Antworten Top
#14
Hall shift-del, Hallo Opa Edgar, Hall Helmut,


@shift-del, PowerQuery kannte ich noch garnicht, noch nicht mal davon gehört. ::) Sehr interessant!

@Edgar, danke für dein Vorschlag

@Helmut, dein Vorschlag habe ich umgesetzt, das Sortieren mache ich beim Import der Daten schon, dann sind sie schon sortiert.

Das einzige was mir noch nicht recht gelingen will, ist die "intelligente Tabelle" namens Liste die Sich selbständig in den Namensmanager anpasst! Oder habe ich das falsch verstanden?. Manuell möchte ich da nicht mehr jedes mal eingreifen um den Bereich zu ändern!

Vielen Dank
VG
Alexandra
Antworten Top
#15
Hallo Alexandra,

Zitat:Das einzige was mir noch nicht recht gelingen will, ist die "intelligente Tabelle" namens Liste die Sich selbständig in den Namensmanager anpasst! Oder habe ich das falsch verstanden?. Manuell möchte ich da nicht mehr jedes mal eingreifen um den Bereich zu ändern!

Korrekt, das ist so. Du hast diese Tabelle ja auch oben links bei den Zellen bzw. Bereichen zur Auswahl. Wenn Du die dort auswählst, wird sie markiert. Wenn Du nun ein paar neue Zeilen eingibst und dort wieder wählst, wird entsprechend mehr markiert.

Über die Suche findest Du bei uns einige Threads, wo das Thema angeschnitten wird.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#16
Hallo Andre,


ist habe das inzwischen so gelöst :) , vielleicht ist jemand auch auf der Suche...

With Worksheets("Packdaten")
 .Range(.Cells(6, 1), .Cells(Tabelle1.Range("A65536").End(xlUp).Row, 8)).Name = "Liste"
End With

Läuft ohne Probleme!


Vielen Dank
VG
Alexandra
Antworten Top
#17
Wenn man VBA verwendet braucht man keine 'Named Ranges'
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#18
Hallo ,

@snb
Code:
Wenn man VBA verwendet braucht man keine 'Named Ranges'

Das sehe ich ganz anders. Gerade wenn man VBA verwedet sollte man benannte Bereiche nutzen.
Dann braucht man nicht so häufig bei Änderungen im Arbeitsblatt auch die Programme anzupassen.

Wenn man wie hier bei Erweiterungen des Bereiches nicht mit den vorgeschlagenen Methoden klarkommt sollte man zumindest die erste Zelle des Bereiches benennen.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#19
@ego

Bist bu bekannt mit "usedrange', 'currentregion', 'specialcells', 'listobject', 'databodyrange', 'headerrow', usw. ?

Wenn es dynamische Named Ranges sind müssen sie immer bei jeder änderung im Workbook neu berechnet werden.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste