Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1004to1008
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

komplexe Mehrfachabfrage

komplexe Mehrfachabfrage
02.09.2008 11:43:00
Ankh
Hallo,
bin nun schon ein paar Tage am überlegen und vlt hat jemand ja eine Idee.
Es sind ca 20.000 Datensätze, welche in dieser Art bearbeitet werden müssten, von Hand dauert es ewig.
Von der reinen Logik her ist es recht einfach, nur leider sind meine Kenntnisse in VBA eher dürftig
Habe ein paar Spalten die Zeichenlimit haben müssen, zugleich Bedingungen zueinander.
Manchmal nur simplen Eintrag, beim anderen eine komplexere Aufteilung.
in Zeile 1 Befinden sich die ganzen Überschriften, also müssten die ganzen Bedingungen ab Zeile 2 wirken.
Spalte G darf maximal 50 zeichen pro Zelle haben, der Übertrag muss in die darunter liegende Zelle eingetragen werden.
Jedoch muss dabei zugleich abgefragt werden ob in den Zellen der Spalten B oder D ein Eintrag vorhanden ist, ist dies der Fall muss erst eine leere Zeile eingefügt werden.
Auch sollte die Trennung der Zelle nicht wahllos von statten gehen, sondern vor einem Leerzeichen, wenn vorhanden. Wenn keins vorhanden eben einfach nach genau 50 Zeichen.
Beispiel: Zelle G3 hat Inhalt "Was auch immer man sich vorstellen kann, könnte am 31.12.2008 eintreffen"
Das sind 71 Zeichen.
Hier sind die 50 Zeichen genau nach dem "am" erreicht.
Also müsste "31.12.2008 eintreffen" nach G4 übertragen werden.
Entweder einfach in die vorhandene Zeile oder, wenn B4 bzw. D4 einen Eintrag haben, in eine nun einzufügende, leere Zeile. Wodurch die zuvorige Zeile 4 zu 5 wird.
Danach genau die gleiche Abfrage noch einmal, aber statt Spalte G für Spalte H.
Wenn dies geschehen ist, die gleiche Abfrage aber mit 27 Zeichen Begrenzung jeweils für die Spalten I und J.
[kA, wie man diese verschachtelung schreiben müsste alleine oO]
Nun folgt das nächste Problem.
In der Spalte AJ müssen alle Leerzeichen und Kommas entfernt werden, ist dies geschehen, muss geprüft werden ob leer, 2 zeichen oder mehr zeichen.
Bei leerer Zelle oder 2 Zeichen passiert nichts, sind es jedoch mehr Zeichen , müsste eine neue Abfrage erfolgen:
Wenn die Spalten B und D in der entsprechenden Zeile leer, darf einfach eingetragen werden, ist jedoch eine oder beide Zellen gefüllt, müsste eine leere Zeile eingefügt werden. Und die mehrzeichen übertragen werden.
Beispiel: CH, AT, DE, HU steht in Zelle AJ2
müsste erst zu CHATDEHU und danach übertragen werden in die richtigen Zellen
damit würde AJ2 CH, AJ3 AT, AJ4 DE, AJ5 HU stehen.
Nun zum letzten Problem, wenn die Zeilen nicht leer sind, also irgendwo auch nur ein Eintrag vorhanden, müssten in die entsprechenden Zellen der Spalten K, M und AI 1,2 und 3 eingetragen werden.
Von der reinen Logik ist es recht einfach, aber leider habe ich keine Ahnung wie ich das in VBA schreiben kann :)
Freund meinte ist sehr einfach, aber als ich fragte ob er es mir zeigt kam nichts mehr, also scheint es doch nicht so einfach zu sein.
Tips und Hilfe ist absolut willkommen, wenn jeman das lösen kann, noch besser.
Aber dann bitte mit Kommentierung, weil würde gerne verstehen wie was passiert um daraus lernen zu können.
Vielen Dank schon einmal im voraus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: komplexe Mehrfachabfrage
02.09.2008 12:24:53
Herby
Hallo Ankh,
kannst du eine Musterdatei hier einstellen, so dass sich ein
Helfer leichter tut, eine Lösung zu finden ?
Viele Grüße
Herby
AW: komplexe Mehrfachabfrage
02.09.2008 13:14:00
Ankh
Hier mal ein Beispiel zu dem Problem:
https://www.herber.de/bbs/user/55122.xls
musste mir fix was zurecht schreiben, weil ich keinen Daten von der Arbeit logischerweise hochladen darf^^
AW: komplexe Mehrfachabfrage
02.09.2008 13:15:00
Ankh
Hier mal ein Beispiel zu dem Problem:
https://www.herber.de/bbs/user/55122.xls
musste mir fix was zurecht schreiben, weil ich keinen Daten von der Arbeit logischerweise hochladen darf^^
achja, mir ist grade aufgefallen, das ich vergessen hatte die 1, 2 und 3 noch in die spalten zu packen
also ändere ich das mal fix und lade sie dann nochmals hoch
Anzeige
AW: komplexe Mehrfachabfrage
02.09.2008 13:20:08
Ankh
hm? wie lösche ich nun die beiden fehlerhaften Posts? Bist du so nett und entfernst sie bitte Herby?
Hier nun mal das wirkliche Problem
https://www.herber.de/bbs/user/55124.xls
dabei sind noch 2 weitere Probleme sichtbar gemacht worden, kA, man dieses einfach per Makro alles machen kann.
AW: komplexe Mehrfachabfrage
02.09.2008 14:37:00
Klaus
Ankh, mal ganz doof gefragt:
warum markierst du nicht die fraglichen Bereiche und rechtsclick - Zellen formatieren - Zeilenumbrüche?
Klaus M.vdT.
AW: komplexe Mehrfachabfrage
02.09.2008 18:09:00
Ankh
naja,
ich selbst würde es persönlich anders aufbauen, aber muss es so machen.
Also dürfen am Ende keine Zeilenbrüche vorhanden sein.
Die Einstellungen sind bewusst so zu halten, weil es über eine Schnittstelle in ein anderes Programm eingelesen werden muss.
Normal würde ich den Lieferanten einfach nur sagen, ich will die Daten in diesen Format, also schick mir.
Aber habe dabei, wie gesagt, leider nix zu sagen.
Und nun noch wochenlang von Hand jeden Eintrag vorzunehmen, kann ja nicht der Sinn sein.
Denke es ist schneller, wenn dazu ein Makro geschrieben wird. Auch wenn man sich dazu, notfalls, erstmal reinarbeiten muss.
Oder ist es zu komplex um es in recht kurzer Zeit zu erlernen und dann passend zu schreiben?
Denke für die Firma ist es günstiger das mal fix schreiben zu lassen, aber das wollen Sie auch nicht.
Somit bleibt der Mist an mir hängen und mich macht es wahnsinnig, weil die Arbeit so extrem stumpfsinnig ist.
Anzeige
AW: komplexe Mehrfachabfrage
03.09.2008 07:54:38
Ankh
Schon einmal vielen Dank Klaus,
bis ich bei dem Makro was durchblicke wird sicher was Zeit vergehen :)
Ich hatte mir gestern noch einen logischen Plan zur möglichen Makrogestaltung gemacht, kA wie man sowas programmiert, aber vlt hilft er dir ja weiter.
Oder wenn nicht, kannst du mir vlt sagen wo der Denkfehler bei mir liegt.
https://www.herber.de/bbs/user/55155.doc
Teillösung:
02.09.2008 13:17:00
Klaus
Hallo Ankh,
mal als Anregung für Spalte G:
Wenn in der letzten Zeile über 100 Buchstaben stehen, muss das Makro evt. zwei mal laufen ....

Sub aufteilen()
Dim myR As Range
Dim myCol As String
Dim myWks As Worksheet  'zu prüfendes Worksheet
Dim fRow As Long        'Erste Zeile, ab der geprüft wird (wg. Überschriften etc)
Dim lRow As Long        'Platzhalter für letzte Zeile
Dim oTxt As String      'Platzhalter für den alten, Langen Zelleninhalt
Dim sTxt As Long        'ab dieser Anzahl Buchstaben trennen
fRow = 3        'Anfangen in Zeile 3 (wg. Überschriften etc.)
myCol = "G"     'in Spalte G
myWks = "Tabelle1"
sTxt = 50       'nach 50 Buchstaben trennen
With Sheets(myWks)                                  'im Blatt "Tabelle1"
lRow = .Range(myCol & "65536").End(xlUp).Row    'letzte Zeile in G
For Each myR In .Range(myCol & fRow & ":" & myCol & lRow)   'Jede Zelle von G3 bis Gx prü _
fen
If Len(myR) > sTxt Then                                 'wenn Anzahl buchstaben ü _
berschritten
oTxt = myR.Value                                    'alten Text speichern
If Not .Range(myCol & myR.Row + 1) = "" Then .Range(myCol & myR.Row + 1).Insert  _
Shift:=xlDown   'bei Bedarf Leerzeile einfügen
.Range(myCol & myR.Row) = VBA.Left(oTxt, sTxt)      'erste 50 Zeichen
.Range(myCol & myR.Row + 1) = VBA.Right(oTxt, Len(oTxt) - sTxt) 'alle Zeichen nach  _
50 (wird im nächsten Durchgang erneut geprüft)
End If
Next myR
End With
End Sub


Grüße,
Klaus M.vdT.

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige