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

Schleife

Schleife
30.03.2020 13:54:58
Fredo
Hallo Forum,
ich sehe den Wald vor lauter Bäumen nicht mehr. Was ist falsch an dem Codeschnipsel?
Option Explicit
Dim StZeile As Long
Dim StSpalte As Long

Sub StammdatenLaden()
With Tabelle5
If .Range("B24").Value = Empty Then Exit 

Sub StammdatenLaden()
With Tabelle5
If .Range("B24").Value = Empty Then Exit Sub
.Range("B26").Value = True   'Setzt Patient geladen auf WAHR
StZeile = Range("B24").Value 'StammZeile wird festgelegt
For StSpalte = 18 To 34
.Range(.Cells(21, StSpalte).Value).Value = Cells(StZeile, StSpalte).Value
Next StSpalte
On Error Resume Next
'    .Range("B3").Value = False
'    .Shapes("PatientNeu").Visible = msoCTrue
'    .Shapes("PatientWeg").Visible = msoCTrue
'    .Shapes("PatientAbruch").Visible = msoCTrue
'    .Shapes("PatientSave").Visible = msoCTrue
.Range("B26").Value = False  'Setzt Patient geladen auf FALSCH
End With
End Sub

An dieser Stelle bricht der Code ab
.Range(.Cells(21, StSpalte).Value).Value = Cells(StZeile, StSpalte).Value

wenn ich im Haltemodus über die Variablen klicke, werden jedoch die richtigen Werte Zeile 21, Spalte 18) angezeigt.
Wer kann mir weiterhelfen?
Vielen Dank
der Fredo

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife
30.03.2020 14:00:51
Regina
Hi Fredo, ohne Deine Datei zu kennen, teste mal so:
.Cells(21, StSpalte).Value = Cells(StZeile, StSpalte).Value
Gruß regina
AW: Schleife
30.03.2020 14:01:11
Werner
Hallo,
.Cells(21, StSpalte) = Cells(StZeile, StSpalte)
Gruß Werner
AW: Schleife
30.03.2020 18:07:01
Fredo
https://www.herber.de/bbs/user/136269.xlsm
Hallo Regina, hallo Werner,
vielen Dank für Eure Antworten.
Ich glaube ich habe einen Denkfehler. Die Schleife soll folgendes bewirken.
In der Zeile 23 sollen durch die Schleife die Spalten 16 bis 34 gefüllt werden. Die Daten sollen aus der Zeile 21 und den Spalten wie in der Schleife angegeben (16 - 34) gezogen werden.
Ich bin im Moment etwas verwirrt, da ich eigentlich keinen Syntaxfehler ausmachen kann. Ich bin aber kein großer VBA-Freak.
Die Datei ist angehängt. Eventuell findet ihr ja einen Fehler.
Danke schon mal.
der Fred
Anzeige
AW: Schleife
30.03.2020 19:15:49
Regina
ok, so ganz durchschaue ich das noch nicht, aber ich vermute, dass ein . fehlt (hinter dem Gleichheitszeichen). Dort muss zumindes einer stehen, wenn die Daten, die gezogen werden sollen, vom gleichen Tabellenblatt stammen:
.Cells(21, StSpalte) = .Cells(StZeile, StSpalte)
Gruß Regina
AW: Schleife
30.03.2020 19:40:45
Fredo
Hallo Regina,
danke für deine Antwort. Er meckert nicht mehr. Die Schleife läuft durch, zeigt aber keine Daten an.
?
Gruß der Fredo
AW: Schleife
30.03.2020 19:49:36
Regina
... ich vermute, dass Du von einem Blatt in ein anderes "laden" willst. In Deiner Konstruktion sprichst Du hinter dem "With" das Blatt "Stammdaten" an, damit bezieht sich alles nach dem With, was mizt einem Punkt beginnt auf dieses Baltt. Wenn die Daten von einem anderen Blatt kommen sollen, muss vor dem "Cells", das hinter dem Gleichheitszeichen steht, der Name des Worksheets stehen.
Was ich nicht durchschaue: Die Daten sollen aus der Zeile kommen, die in B24 steht. Dort steht einen 23. Aus welcher Zeile 23 sollen die Daten kommen?
Erklär sonst nochmal, was Dein Code genau machen soll.
Gruß Regina
Anzeige
AW: Schleife
30.03.2020 20:13:40
Werner
Hallo,
mal ne bescheidene Frage: Weshalb denn mit einer Schleife, wenn du einen zusammenhängenden Bereich hast?
Sub StammdatenLaden()
With Tabelle5
If .Range("B24")  "" Then
.Range("B26") = True
.Range("R21:AH21").Copy
.Range("R23").PasteSpecial Paste:=xlPasteValues
.Range("B26") = False
.Shapes("StDatenNeu").Visible = msoCTrue
.Shapes("StDatenAendern").Visible = msoCTrue
Application.CutCopyMode = False
End If
End With
End Sub
Gruß Werner
AW: Schleife
30.03.2020 20:33:44
Fredo
Hallo Regina, Hallo Werner,
nachdem der Patient bzw. die Patienten neu angelegt wurde(n), werden die Daten in dem Tabellenblatt Daten gesammelt. Bei Neuanlage immer unten angehängt.
In dem Tabellenblatt Stammdaten, indem immer nur der im Tb Manager ausgewählte Patient mit seinen Stammdaten angezeigt wird (per Doppelklick auf die PatientenNr. öffnen), werden dann per Sverweis (soll auch mit VBA realisiert werden) die Stammdaten eingelesen. In diesem Stammblatt werden dann weitere Bewegungsdaten erfasst und an den Bereich R23 bis AH23 übertragen.
Bei Neuanlage werden die Zellen mit den beweglichen Daten werden gelöscht und nur die Stammdaten angezeigt. Nach Eingabe der neuen beweglichen Daten sollen die beweglichen Daten in den Bereich R23 bis AH23 übertragen werden und dann in das Tb Daten zu den Stammdaten eingefügt werden.
Bei Änderungen sollen die geänderten Daten natürlich nicht in das Tb Daten unten angehängt werden, sondern dem entsprechenden Patienten zugeordnet werden.
Dieser Umweg (Aufteilung der Daten) ist nötig, da ansonsten das Tb Manager überdimensional groß werden würde.
So zumindest meine Gedankengänge. Wie gesagt ich bin kein Entwickler und versuche meine Vorstellungen, die natürlich nur für mich gelten, so gut wie möglich umzusetzen.
Ich bin aber für jeden Hinweis, Tipp, Ratschlag und auch für Kritik dankbar.
Ich hoffe diese Erklärung hilft weiter.
Gruß der Fredo
Anzeige
AW: Schleife
30.03.2020 21:34:48
Werner
Hallo,
keine Ahnung was du mit diesem Post jetzt willst.
Du hast einen Code eingestellt, der nicht funktioniert. Den hab ich anepasst und dir geschickt.
Gruß Werner
AW: Schleife
30.03.2020 22:08:18
Fredo
Hallo Werner,
sorry, aber dein Code funktioniert in soweit, dass er nicht meckert und durchläuft, aber er bringt kein Resultat. Die Zeile die gefüllt werden soll bleibt leer.
Gruß
der Fredo
AW: Schleife
30.03.2020 22:12:14
Regina
...so, ohne dein ganzes Projektzu durchschauen,
von welchem Blatt,aus welcher Zeile sollen Daten kopiert werden?
in welches Blatt, in welcher Zeile sollen die Daten landen?
Gruß Regina
AW: Schleife
31.03.2020 09:02:05
Fredo
Hallo Regina, hallo Werner,
ich habe mich wohl in meinen Gedankengängen verrannt. Sorry, bin halt nur ein Laie.
Das Problem, so wie gestellt,ist hinfällig und wird anderweitig gelöst.
Trotzdem vielen lieben Dank für Eure Bemühungen.
Liebe Grüße
der Fredo
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige