Dateizahlen in eine Zelle einfügen

Hallöchen,

ich habe mal wieder ein kleines Problem in VB.
Eigendlich ist es wahrscheinlich nicht schwer, aber irgendwie klappt bei mir grad gar nichts.

Es ist also folgendes:

In einer Arbeitsmappe habe ich drei Tabellenblätter.
Ich arbeite im Moment mit dem Tabellenblatt 2 & 3.

In der Tabelle 3 in der Zelle B83 soll folgender Inhalt reinkopiert werden:

Durch einen Sub soll in der Tabelle 2 ab der Zeile 7 durch die Spalte D gegangen werden und geschaut werden ob darin die Zahl 520 steht.

Wenn ja, dann soll die dazugehörige Zahl(steht in der Vorletzten Spalte, d.h. ich weiss nicht wo sich die letzte Spalte befindet, dies ändert sich immer, aber der Wert den ich brauche steht immer in der vorletzten) dieser Zeile in die Zelle der Tabelle 3 kopiert werden.
Wenn in dieser Spalte die Zahl 520 nicht steht, soll das kontrollieren bei der letzten Zeile enden. Damit meine ich dass es keine Endlosschleife ergibt!

Könnt ihr mir da raushelfen?
Danke schonmal

Hallo

Ich habe das ganze zwar nicht getestet aber so oder so Ähnlich könnte der Code ausschauen

Public Sub Rekalcualte()
Dim m_i As Long
Dim m_ii As Long

m_i = 7
Do While (Sheets(„Tabelle 2“).Cells(m_i, 4).Value „“)
If Sheets(„Tabelle 2“).Cells(m_i, 4).Value 720 Then
'letze spalte suchen
m_ii = 5
Do While (Sheets(„Tabelle 2“).Cells(m_i, m_ii).Value „“)
m_ii = m_ii + 1
Loop
Sheets(„Tabelle 3“).Cells(m_i, 5).Value = Sheets(„Tabelle 2“).Cells(m_i, m_ii - 2).Value
Else
'Was auch immer da passieren soll
End If
m_i = m_i + 1
Loop
End Sub

Mit freundlichen Grüßen
Andreas

Hi Andreas,

danke schonmal dass du dir dafür Zeit genommen hast.
Ich habe es jetzt in ein Modul eingefügt.
Dabei kommt allerdings der Laufzeitfehler 9 angezeigt, und dieser Satz wird gelb angezeigt:

Do While (Sheets(„Tabelle 2“).Cells(m_i, 4).Value

Grüsse Christine

Hallo

Vielleicht Korrigiert du den Ausdruck „Tabelle 2“ auf das wie der Blattname wirklich lautet. Ich nehme mal an ohne Space. Das musst du auch übrigens bei allen anderen Aufrufen dieser Art machen

Mit freundlichen Grüßen
Andreas

Hi Christine,

ich habe mal wieder ein kleines Problem in VB.

schreib bitte beim nächsten mal Excel2003-vba, Word2000-Vba oder VB6.0, je nachdem was du meinst, oft kann amn das am Code nicht direkt erkennen.

In der Tabelle 3 in der Zelle B83 soll folgender Inhalt
reinkopiert werden:
Durch einen Sub soll in der Tabelle 2 ab der Zeile 7 durch die
Spalte D gegangen werden und geschaut werden ob darin die Zahl
520 steht.
Wenn ja, dann soll die dazugehörige Zahl(steht in der
Vorletzten Spalte, d.h. ich weiss nicht wo sich die letzte

Option Explicit
'
Sub Finde()
Dim Zei As Long, Spa As Long
With Worksheets("Tabelle2")
 If Application.WorksheetFunction.CountIf(.Range("D7:smiley:" & Rows.Count), 520) \> 0 Then
 Zei = Application.WorksheetFunction.Match(520, .Columns(4), 0)
 Spa = .Cells(Zei, Columns.Count).End(xlToLeft).Column - 1
 Worksheets("Tabelle3").Range("B83") = .Cells(Zei, Spa).Value
 Else
 Worksheets("Tabelle3").Range("B83") = "Not found"
 End If
End With
End Sub

Gruß
Reinhard

Hallöchen,
also ich hab das jetzt gemacht und er zeigt keine Fehlermeldung mehr an. Allerdings zeigt er auch keine Zahl an, obwohl diese existiert.

Mit freundlichen Grüßen
Christine

Hallo Reinhard,

also danke schon mal dass du dir für mich Zeit nimmst.
Ich habe:

Excel 2002
VB 6.0

Als ich den Code in das Modul eingefügt habe kam eine Fehlermeldung. Danach habe ich die Tabellennamen reingeschrieben und es kam keine Fehlermeldung mehr, allerdings zeigt er mir dann „Not found“ an, obwohl es diese Zahl gibt.

Grüsse Christine

Hallo Christine,

Excel 2002
VB 6.0

jain, das Vba von Excel2002 ist die Version Vba 10.0, aber die 10.0 sind nicht wichtig, wichtig ist die Information Excel2002 Vba.

Im Editor wird zwar bei Info angezeigt VB6.0, aber das bedeutet keineswegs daß du Vb6.0 hast. Dein Vba beruht auf einer Teilmenge der Vb6.0 Funktionen und hat Zusatzfunktionen die VB6.0 nicht hat.

Als ich den Code in das Modul eingefügt habe kam eine
Fehlermeldung.

Welche, in welcher Codezeile stand der Debugger?

Danach habe ich die Tabellennamen
reingeschrieben und es kam keine Fehlermeldung mehr,
allerdings zeigt er mir dann „Not found“ an, obwohl es diese
Zahl gibt.

Schwierig aus der Ferne zu deuten, Schreibweise, Leerzeichen, vieles möglich. Bei mir lief der Code.

Mach mal eine Kopie deiner Datei, sodaß die Blattnamn so wie sie sind erhalten bleiben, lösche alles in Blatt1 und Blatt3, ist ja unwichtig, auch in Blatt2 kannst du alles löschen bis auf die Zeile wo in D die 520 steht, lade die Datei dann hoch, z.B. damit: FAQ:2861

Gruß
Reinhard

Grüsse Christine

Hallo Reinhard,

also bei der Fehlermeldung wird der „Laufzeitfehler 9“ angezeigt, und der Debugger zeigt die Zeile „With Worksheets(„Tabelle2“)“ an.

Die Datei: http://www.hostarea.de/server-07/Juli-d78db04bf0.xls

Grüsse
Christine

Hallo Christine,

also bei der Fehlermeldung wird der „Laufzeitfehler 9“
angezeigt, und der Debugger zeigt die Zeile „With
Worksheets(„Tabelle2“)“ an.

ok, der Fehler ist ja weg, du hast ja die Blätter inzwischen im Code so benannt wie sie auch heißen.

Die Datei:
http://www.hostarea.de/server-07/Juli-d78db04bf0.xls

Die Meldung „not found“ ist doch in Ordnung, im Code suchst du in D nach 560, aber D ist leer. Du hast die Zeile 28 stehen gelassen, ich schrieb in D28 560 hinein, und das wurde gefunden und der Code lieferte korrekt den Wert von Y28 zurück, da die letzte Zelle in der Zeile Z28 ist und du den Wert (84) dr vorletzten Zelle in der gefundenen Zeile wolltest.

Gruß
Reinhard

Hallo Reinhard,

also jetzt bin ich verwirrt.
Im Grundartikel habe ich geschrieben ich suche nach der 520 (was ein rechtschreibfehler war, da ich in wahrheit die 560 suche). Als ich den Code von dir erhalten habe war dieser natürlich auf 520 ausgerichtet. Da ich dies gesehen habe, habe ich den Code auf 560 geändert, und bei mir kam „not found“. Um dich nicht zu verwirren habe ich die Zahl wieder auf 520 geändert, dabei allerdings vergessen es im Code und in der Tabelle3 auch zu tun. Somit war das „not found“ richtig. Wenn ich die Zahl allerdings wieder auf 560 umschreibe, wird bei mir in der Tabelle3 wieder „not found“ angezeigt, auch wenn ich dies bei der Beispieldatei die ich hochgelanden habe mache. Vielleicht betätige ich diesen Befehl falsch? Ich geh immer in den Code und drücke auf ausführen. Ist das falsch??

Grüße Christine

mhh das Programm schreibt die Zahl in die Dritte Tabelle ich dacht das sei von dir so Gewünscht ?

mfg
Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Christine,

der Code ist okay und ihm ist es egal ob du ihn mit F5 im Editor oder über einen Formular-Button in der Tabelle startest.

Sicher, im Code wird nach 560 gesucht, aber im Blatt stand keine 560.
Eine 520 stand in C 28, D 28 war leer ! Daran lag/liegt es.

Und zu deinen anderen Codes. Benutze bitte immer Option Explicit, das gehört pro Modul einmalig ganz oben hin.
Um es nicht immer schreiben zu müssen, im Editor Extras–Optionen–Editor–Variablendaklaration erforderlich anhaken.

Die DIMs gehören in jeder Prozedur an den Anfang des Codes. Beim Starten des Codes werden zuallerst alle DIMs usw. eingelesen, egal wo sie im Code stehen und weil sie wie bei dir in einer IF-Abfrage stehen vielleicht nie durchlaufen werden, eingelesen beim Codestart werden sie trotzdem, bringt also keinen Zeitgewinn o.ä.

Globale Variablendeklaration gehört oben unter Option Eplicit.

Gruß
Reinhard

Im Grundartikel habe ich geschrieben ich suche nach der 520
(was ein rechtschreibfehler war, da ich in wahrheit die 560
suche). Als ich den Code von dir erhalten habe war dieser
natürlich auf 520 ausgerichtet. Da ich dies gesehen habe, habe
ich den Code auf 560 geändert, und bei mir kam „not found“.
Um dich nicht zu verwirren habe ich die Zahl wieder auf 520
geändert, dabei allerdings vergessen es im Code und in der
Tabelle3 auch zu tun. Somit war das „not found“ richtig. Wenn
ich die Zahl allerdings wieder auf 560 umschreibe, wird bei
mir in der Tabelle3 wieder „not found“ angezeigt, auch wenn
ich dies bei der Beispieldatei die ich hochgelanden habe
mache. Vielleicht betätige ich diesen Befehl falsch? Ich geh
immer in den Code und drücke auf ausführen. Ist das falsch??

Grüße Christine

Danke Reinhard,

jetzt hab ich alles verstanden.

Schönen Tag dir noch,
Christine

ja ist es auch, aber bei mir zu hause wird nichts auf dem tritten tabellenblatt angezeigt, aber macht nichts, wahrscheinlich istes von mir nur ein Rechtschreibfehler.
Den finde ich auch alleine, danke.

mfg Christine