online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon sebal vom 09.11.2019, 09:50 Options

zellen auslesen3 + berechnen in VBA

hallo zusammen,

ich habe folgendes problem und wäre um hilfe dankbar.

als kleines beispiel zur veranschaulichung:

%%CONT
2
3
3
%end-plate/p
45 32 32 21 12 77
34 55 77 88 99 34
23 23 23 34 54 38
15 89 86 23 23 1.00E-20
%parting
34
34
33
3
%parting


dies oben ist meine datei, die spalte A ist leer, dh die Spalte die durchsucht werden soll ist B.

gibt es ein makro, dass durch die datei "geht" bis es auf "%end-plate/p" stößt, alles darunter kopiert und in das Tabellenblatt "Auswertung2" in die Zelle B2 einfügt bis es auf "%parting" stößt.
anschließend soll dieser eingefügte bereich im tabellenblatt auswertung2 folgendermaßen durchsucht werden:
im diesem beispiel wäre der bereich so:
45 32 32 21 12 77
34 55 77 88 99 34
23 23 23 34 54 38
15 89 86 23 23 1.00E-20
nun soll das programm von einer zelle in die nächste springen, also von 45 auf 32 dann auf 32 dann auf 21 dann auf 12 dann auf 77 dann auf 34 usw. bis es auf 1.00E-20 stößt, dann soll es die anzahl der schritte die es bis zu der zelle davor gemacht hat -1 nehmen und diesen wert dann in das Tabellenblatt TBT in die Zelle AE 690 schreiben, ist das möglich,
bei diesem beispiel wäre es also der wert 22

vielen dank
gruß sebal


Antwort schreiben

Antwort 1 von coros vom 09.11.2019, 10:50 Options

Hallo sebal,

leider wiedersprüchlich, was Du schreibst. Du schreibst, dass es sich um Spalte B handelt. Somit sieht das für mich so aus, dass z.B. 45 32 32 21 12 77 ein Wert ist, der in einer Zelle in Spalte B steht. Dann schreibbst Du als Beispiel

Zitat:
nun soll das programm von einer zelle in die nächste springen, also von 45 auf 32 dann auf 32 dann auf 21 dann auf 12 dann auf 77 dann auf 34 usw.


Wie soll das gehen, wenn alle Zahlen in einer Zelle stehen???? Das bedeutet, dass alle Zahlen, die DU in Deinem Beispiel aufgeführt hast, in einer Zelle in Spalte B stehen. Wie sollen deise dann in jeweils in einer eigenen Zelle stehen? Also der Wert 45 in einer Zelle, die 32 in einer Zelle usw.?

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von sebal vom 09.11.2019, 11:13 Options

hallo oliver,

nein die werte stehen nicht in einer zelle deswegen doch die leerzeilen. oben bei meinem beispile soll die spalte B so wie beschrieben untersucht werden, aber dann soll ja der gesamte! bereich dazwischen kopiert werden also zB auch 32 32 21 12 77 welche in den Spalten C D E F bzw G stehen.


also nochmal jeder der werte steht in einer anderen zelle (gekennzeichne durch leerzeichen).

weiter unten habe ich ja dann den bereich hingeschrieben der kopiert worden ist, dabei stehen wiederum alle werte in unterschiedlichen zellen, wie dies dann untersucht werden soll steht oben.

danke
gruß sebal

Antwort 3 von sebal vom 09.11.2019, 11:19 Options

hallo nochmal,

in spalte B steht nur:

%%CONT
2
3
3
%end-plate/p
45
34
23
15
%parting
34
34
33
3
%parting

dies steht alles untereinander in spalte B

gruß sebal

Antwort 4 von coros vom 09.11.2019, 11:24 Options

Hallo sebal,

sorry, ich will hier jetzt auch keine Grundsatzdiskussion über das Schreiben eines Problems hier im Forum anfangen, aber Deine Schilderungen Deiner Anfragen sind ziemlich wirr und das nicht nur in dieser Anfrage, sondern bereits auch in den Deinen Beiträgen der letzten Tage.

Du schreibst in AW2

Zitat:
deswegen doch die leerzeilen.


Ich habe nun mehrmals Deine Frage durchgelesen. Ich habe nirgends etwas von Leerzeilen entdecken können. Was hat das mit den Leerzeile auf sich.

Du solltest bevor Du eine Frage stellst, genau überlegen, was Du möchtest. Auch sollte sich das Beispiel ziemlich genau am Original in Deiner Datei orientieren.
Dann solltest Du Deine Frage Dir vor dem Abschicken selber nochmal kritisch durchlesen und Dir selber die Frage stellen, kommen mit der Frage die Leute klar, die Deine Datei nicht kennen. Erst dann solltest Du die Frage abschicken.

Wenn Du Dir mal die letzten Beiträge von Dir anschaust, sind die meisten Antworten doch Nachfragen oder Schnellschüsse von Dir, dass die Lösungen nicht funktionieren. Nachdem Du diese dann aber instensiver ausprobiert hast, dann doch funktionieren usw.

Denke immer daran, eine genaue Beschreibung liefert ein gutes Ergebnis. Eine ungenau Beschreibung liefert nur ständige Nachfragen.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von sebal vom 09.11.2019, 11:52 Options

hallo,

ich weiß nicht was du da nicht verstehst?
das mit den leerzeichen, die zahl 45 steht in der Zelle neben der Zahl 32 ist das verständlich?

sag doch mir mal bitte genau was unverständlich ist, bei dieser fragestellung habe ich mir schon mühe gegeben da ich mir schon dachte dass es da probs gibt, aber ich denke es ist verständlich.

bitte schreib genau was für dich unverständlich ist, um mir hilfe zu geben, danke!

gruß sebal

Antwort 6 von sebal vom 09.11.2019, 11:54 Options

hallo,

vielleicht müsste ich die datei besser darstellen damit man differenzieren kann was spalte A B C D usw sein soll, das stimmt vielleicht.

auf jeden fall die zahlen im mittleren teil meiner frage stehen alle in einer anderen zelle, ok?

gruß sebal

Antwort 7 von coros vom 09.11.2019, 12:03 Options

Hallo sebal,

genau das ist das was ich hier anspreche. In AW2 schreibst Du "Leerzeilen". In AW5 dann auf einmal "Leerzeichen".

Das ist unverständlich. Was sind es denn nun Leerzeilen oder Leerzeichen?

Nicht ich muss Dir durch ständige Fragen sagen, was fehlt, sondern Du musst die Fragen so stellen dass man sie versteht. Vor allem nicht ständig Dinge verwechseln, wie z.B. Leerzeilen und Leerzeichen.

Wie Du nun siehst, haben wir alleine bis jetzt 7 Beiträge damit zugebracht um zu versuchen Deine Frage zu verstehen. Und wir sind damit noch nicht am Ende.

Eventuell bin aber nur ich es, der Deine Fragen nicht auf Anhieb versteht. Aber ein Makro zu erstellen, was Dank Verwechslungen in die falsche Richtung geht hilft hier niemandem.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 8 von coros vom 09.11.2019, 12:33 Options

Hallo sebal,

bitte nicht wundern, wenn ich jetzt erst mal nicht mehr auf Beiträge von Dir reagiere, aber ich habe nun erst mal wieder einen Termin. Sobald ich wieder on Air bin, melde ich mich dann wieder.

MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Antwort 9 von sebal vom 09.11.2019, 19:23 Options

hallo oliver,

ich meine leerzeichen, diese bezeichnung verwende ich nur um dir klar zu machen dass der bereich zwischen %end-plate/p und %parting nicht nur in spalte B steht sondern nur jeweils der erste wert jeder zeile also 45 34 32 bzw 15.
die anderen werte stehen suksesieve in den spalten daneben, es soll die spalte B nur so lange untersucht werden bis der geforderte bereich wie oben in der frage dargestellt ist gefunden ist, danach steht dieser bereich mit den werten ja dann in einem anderen TB in dem bereich der oben genannt ist, dann soll so vorgegangen werden wie oben, gibt es noch fragen zur aufgabenstellung jetzt?

danke
gruß sebal

Antwort 10 von Marie vom 10.11.2019, 00:18 Options

Zitat:
alles darunter kopiert und in das Tabellenblatt "Auswertung2" in die Zelle B2 einfügt bis es auf "%parting" stößt.


Hallo Sebal, ich habe zwar gleich gemerkt, dass Du Leerzeichen meinst, obwohl Du Leerzeilen geschrieben hast. Ging eigentlich auch aus Deinem Text hervor. man könnte jedoch an dem oben zitierten Text wieder das verstehen, was Coros verstanden hat, denn Du schreibst das soll alles in Zelle B2 eingefügt werden.

Ich gehe mal davon aus, dass das ab Zelle B2 einkopiert werden soll, also in B2, C2, usw, so angeordnet wie es vorher dagestanden hat????

gruß marie

Antwort 11 von Marie vom 10.11.2019, 05:45 Options

Hier, hoffe das ist das was Du suchtest, Gruß Marie

Sub kopieren()
Dim Zeile As Integer
Dim Spalte As Integer
Dim Anzahl As Integer
Dim iZeile As Integer
Dim jSpalte As Integer

On Error GoTo schieben_err
Zeile = 1
Spalte = 2
While Tabelle1.Cells(Zeile, Spalte) <> "%end-plate/p"
Zeile = Zeile + 1
Wend
Zeile = Zeile + 1
Anzahl = 1
' in B2 einfügen = Zeile 2 Spalte 2
iZeile = 2
jSpalte = 2
While Tabelle1.Cells(Zeile, Spalte) <> "%parting"
While Tabelle1.Cells(Zeile, Spalte) <> ""
Sheets("Auswertung2").Cells(iZeile, jSpalte) = Tabelle1.Cells(Zeile, Spalte)
If Tabelle1.Cells(Zeile, Spalte) <> "1.00E-20" Then Anzahl = Anzahl + 1
Spalte = Spalte + 1
jSpalte = jSpalte + 1
Wend
Spalte = 2
jSpalte = 2
Zeile = Zeile + 1
iZeile = iZeile + 1
Wend
Anzahl = Anzahl - 2

'diesen wert dann in das Tabellenblatt TBT in die Zelle AE 690 schreiben kannst Du jetzt selbst

Exit Sub
schieben_err:
MsgBox Error$
End Sub

Antwort 12 von sebal vom 10.11.2019, 14:43 Options

hallo marie,
das was du in AW 10 vermutest ist korrekt,
ich werde deinen vorschlag aus AW 11 demnächst testen, und dir dann bescheid geben ok?
danke
gruß sebal

Antwort 13 von Marie vom 10.11.2019, 16:04 Options

Oki, dann tu das und versuch Dich künftig genauer und fehlerlos auszudrücken.

Gruß Marie

Antwort 14 von sebal vom 12.11.2019, 07:38 Options

hallo marie,

danke für dein makro,
es macht teilweise das was ich möchte, da es den gewünschten bereich in das Tabellenblatt "Ausewertung2" an die gewünschte stelle kopiert, das ist ok, danke.

ABER:
nun möchte ich dass dieser bereich der kopiert worden ist durchsucht wird folgendermaßen:
zuerst:
Anmerkung:
bei meinem bsp ist die vorletzte Zahl unglücklich gewählt, aus der 23 machen wir eine 20.

jetzt das durchsuchen:
in diesem neu entstandenen bereich soll nun jede zelle von "B2:G205" untersucht werden, ob in ihr (der zelle) der wert "1.00E-20" steht, sobald dies der fall ist,
soll von der Zahl(die für den wert der bisher durchsuchten zellen steht) 1 subtrahiert werden.
dieser wert soll dann ins Tabellenblatt "TBT" in die Zelle AE696 geschrieben werden.

in meinem beispiel wäre das dann die zahl 22, welche in der Zelle AE696 stehen sollte, da 23 zellen untersucht wurden ehe der wert 1.00E-20 auftauchte.

der wert 1.00E-20 taucht garantiert 1 mal in dem zu durchsuchenden bereich auf.

Danke, weist du hier rat?
gruß sebal

Antwort 15 von sebal vom 12.11.2019, 07:53 Options

hallo marie,
sorry hab deinen kommentar übersehen,
habs nun selber hinbekommen, das mit dem wert.
weist du vllt bei meinem diagramm probelm rat?
danke, gruß sebal

Antwort 16 von sebal vom 12.11.2019, 12:13 Options

hallo marie,

jetzt kommt auf einmal immer so ein fenster, wo drin steht:

"Überlauf" bzw. "objekt erforderlich"

dies sind so kleine fenster, die nicht im VBA editor erscheinen sondern in der Excel mappe.

Was bedeutet das? Was habe ich falsch gemacht?

gruß sebal

Antwort 17 von gast123 vom 12.11.2019, 15:11 Options

hi all

On Error GoTo schieben_err

schieben_err:
MsgBox Error$

sollte wohl eher nicht genutzt werden in diesem zustand,fehlererfassung wie behandlung sollte es heissen

gruss gast123

Antwort 18 von Marie vom 12.11.2019, 17:46 Options

hi gast123, Gerade bei ihm war es mir wichtig die fehlermeldung zu bekommen, weil er nicht fähig ist sich genau auszudrücken was er meint.

Der Fehler überlauf bedeutet, dass einer der gesuchten Werte nicht vorhanden ist und er sich dumm und dabbisch sucht. Hab mir sowas gleich gedacht. Man programmiert nicht wirklich um drei Ausdrücke drumherum, die an einer bestimmten Stelle vorkommen müssten. Ich habe hier keine Fehlerroutine rein, dass Du eine Meldung bekommst, wenn ein Wert nicht gefunden wird. Bitte lass mal im Einzelschritt (weiter mit F8) den Code durchlaufen, dann siehst Du wo er in die MSGBox reinspringt.


Das sind alles Endlosschleiden, es gibt einen Überlauf wenn der Wert "%end-plate/p" nicht gefunden wird, ebenso wenn der Wert "%parting" nicht gefunden wird.

Gruß Marie

Ähnliche Themen

Zwischenwerte automatisch berechnen?
mac_d  02.08.2007 - 28 Hits - 4 Antworten

VBA + zellen vergleichen und rausschreiben
seebaer_1  26.02.2008 - 133 Hits - 9 Antworten

Schnellreferenz Excel VBA
Joshuan  23.05.2008 - 219 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026