Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Schreiben in Zelle mit VBAfunktioniert nicht
29.12.2016 16:42:22
Marcus
Hallo Forum,
ich bin gerade etwas verwirrt:
In einer Datei dokumentiere ich die Ausgabe von Schlüsseln in einem Tabellenblatt.
Da mehrere verschiedene Bereiche mit verschiedenen Schlüsseln vorhanden sind gibt es für jeden Bereich ein eigenes Tabellenblatt zur Dokumentation. Jedes Tabellenblatt hat auch ein eigenes Eingabeformular, wobei die Eingabefelder eigentlich identisch sind. Die Schlüsselnummern sind auf einem anderen Blatt, jeder Bereich in einer eigenen Spalte. Zur Prüfung, ob ein Schlüssel bereits ausgegeben ist verwende ich eine weitere Spalte in die der Vermerk "aus" geschrieben wird.
Das Speichern der Formulardaten funktioniert. Seltsamerweise funktioniert bei 2 Tabellenblättern auch das Schreiben von "aus" in die Hilfsspalte, beim 3. Tabellenblatt wird es aber nicht geschrieben. Der VBA-Code der Formulare und zum Spechern ist identisch, bis auf die Zuordnung der Spalten (Blatt 1 verwendet Spalte 1 und 2, Blatt 2 die Spalten 3 und 4, usw.).
Hier der Code der für das Speichern von "aus" zuständig ist (Blatt 3, Spalten 5 und 6):

' Vermerken dass der Schlüssel ausgegeben ist
With wksData
For ii = 3 To .Columns(5).Find(what:=Me.cmbSchlüsselNr.Value, LookIn:=xlValues, lookat:= _
_
xlWhole).Row
If .Cells(ii, 5).Value = Me.cmbSchlüsselNr.Value Then
.Cells(ii, 6).Value = "aus"
Exit For
End If
Next ii
End With

Woran kann es liegen dass es 2x funktioniert und beim 3.ten Mal nicht mehr?
Vielen Dank für Eure Unterstützung!
Gruß Marcus

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schreiben in Zelle mit VBAfunktioniert nicht
29.12.2016 17:16:11
Gerd
Hallo Marcus,
hast du im dritten Blatt andere Spalten benutzt oder ist das Zellen-Zahlenformat abweichend?
Oder unterscheidet sich der Code selbst je Userform ?
Nebenbei halte ich es für sehr optimistich, die Find-Methode u. eine Eigenschaft von deren Rückgabewert
direkt in einen Schleifenkopf zu schreiben.
Gruß Gerd
AW: Schreiben in Zelle mit VBAfunktioniert nicht
29.12.2016 17:48:09
Marcus
Hallo Gerd,
Zahlenformat und Spalten sind alle gleich, ist quasi immer die Kopie des Blattes, des Codes oder auch des Formulares... Ich bin langsam echt am verzweifeln...
Selbst die Formularfelder sind gleich benannt, hier bekomme ich die Daten auch an der richtigen Stelle gespeichert.
Was könnte ich besser machen mit dem Schleifenkopf? Es funktioniert, aber wenn es bessere und zuverlässigere Möglichkeiten gibt immer gerne :-)
Gruß Marcus
Anzeige
AW: Schreiben in Zelle mit VBAfunktioniert nicht
29.12.2016 18:53:05
Gerd
Hallo Marcus,
stellen wir Letzteres noch zurück.
Wenn also quasi alles für u. mit Blatt 1 - 3 identisch ist, wirst du wohl einen Extrakt von Blatt 3 u. der zugehörigen Userform hochladen müssen, wo der Fehler auftritt, u. andere "quasi" suchen lassen.
Alles andere ist Glaskugel.
Gruß Gerd
wie man's nimmt
29.12.2016 19:50:00
Michael
Hi,
die Schleife ist schlicht Quatsch: zuerst wird ermittelt, in welcher Zeile der Wert steht, dann werden alle Zeilen ab 3 bis dahin nochmal einzeln überprüft: wozu?
Abgesehen davon wird die Schleife verlassen, sobald der Wert *einmal* gefunden wurde - ist das wirklich erwünscht?
Die Suche nach dem ersten Treffer geht völlig ohne Schleife:
Sub besser()
Dim wksdata As Worksheet
Dim c As Range
Dim ii As Long
Dim suchNach As String
Set wksdata = ActiveSheet
' suchNach = Me.cmbSchlüsselNr.Value ' bei Dir
suchNach = "bla"  ' schnell zum Testen
' bla steht bei mir in E14
Set c = wksdata.Columns(5).Find(what:=suchNach, _
LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
c.Offset(, 1) = "aus"
Else
MsgBox suchNach & " nicht gefunden."
End If
End Sub
Schöne Grüße,
Michael
Anzeige
AW: wie man's nimmt
29.12.2016 22:18:43
Marcus
Hallo Michael,
ja, da hast Du wohl recht! Ich habe die Datei übernommen und etwas erweitert und nicht wirklich den Sinn der Schleifen etc. geprüft. Sollte ich wohl nochmals machen!
Da die Namen der Schlüssel einmalig sind ist eine weitere Prüfung nicht erforderlich und die Schleife kann verlassen werden.
Und an "offset" hab ich noch gar nicht gedacht, ist ein guter Ansatz!!!
Vielen Dank für Deine Lösung!
Gruß Marcus
ne fein, danke für die Rückmeldung,
30.12.2016 12:20:32
Michael
Marcus,
einen guten Rutsch & Grüße,
Michael
AW: Schreiben in Zelle mit VBAfunktioniert nicht
29.12.2016 19:46:20
Werner
Hallo Marcus,
ich habe mal ein wenig gespielt. Ich würde das in einem Tabellenblatt dokumentieren und nicht in verschiedenen.
Das Makro ist dynamisch, die letzte Spalte wird anhand von Zeile 1 ermittelt. Das bedeutet, wenn weitere Bereiche dazu kommen, kann die Tabelle einfach nach rechts erweitert werden, ohne dass das Makro angepasst werden müsste.
Die vorhandenen Schlüssel sowie die Schlüsselberechtigten werden im Blatt "Stammdaten" verwaltet.
Kannst es dir ja mal anschauen und ein wenig spielen.
https://www.herber.de/bbs/user/110254.xlsm
Gruß Werner
Anzeige
AW: Schreiben in Zelle mit VBAfunktioniert nicht
29.12.2016 22:13:59
Marcus
Hallo Werner,
vielen Dank für Deinen "Spieltrieb" ;-)
Wobei ich die Lösung von Michael fast bevorzugen würde. Deine Datei kommt aber auf jeden Fall mal zu meiner Sammlung "Vorlagen und Lösungen"!
Also nochmals vielen Dank für Deine Mühe!
Gruß Marcus
Gerne u. Danke für die Rückmeldung. o.w.T.
30.12.2016 09:10:54
Werner

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige