Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1680to1684
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

falscher Datentyp

falscher Datentyp
20.03.2019 10:53:34
Alfred
Guten Morgen,
Ich habe vor ein paar Wochen schon einmal Ihren Rat in Anspruch genommen, und es hat mir sehr geholfen. Vor allem hat es das Denken auf eine andere Idee gebracht.
Ich weiß nicht, ob mein Feedback damals angekommen ist, daher möchte ich mich hier noch einmal bedanken.
Ich habe ein kleines Programm geschrieben, das via UserForm eingegebene Werte automatisch in eine Tabelle einträgt. Zwei Tabellen auf einem Blatt. Das sub, das von UserForm 2 gestartet wird, funktioniert tadellos. Die "Kopie" dieser Routine,
die von UserForm3 gestartet wird, schmeisst mir eine Typenunverträglichkeit zurück. Dabei hat sich ausser den auszufüllenden Spalten und den Variablennamen nichts geändert (auch nicht beim Variablentyp! Schicke das ganze Excel-file (Honig V1803g), damit man alles genau sieht, wie das Ganze gemeint ist.
Ich bin den Code vergangene Nacht X-mal durchgegangen, habe aber nichts herausgefunden. Warum soll die Kopie nicht genau so gut funktionieren wie das Original ?
mit freundlichen Grüßen
Alfred Pfeiler

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Excel-file wo? bitte Link setzen ... owT
20.03.2019 11:09:44
Matthias
AW: Excel-file wo? bitte Link setzen ... owT
20.03.2019 22:29:48
onur
Erklär doch mal, was du glaubst, dass dieser Code machen würde:
Set y = Sheets(1).Range("P:P").Find("")
Set y = AZ_Ganzer
Set y = Sheets(1).Range("Q:Q").Find("")
Set y = EP_Ganzer
Set y = Sheets(1).Range("R:R").Find("")
Set y = "€"
Set y = Sheets(1).Range("S:S").Find("")
Set y = AZ_Halber
Set y = Sheets(1).Range("T:T").Find("")
Set y = EP_Halber
Set y = Sheets(1).Range("U:U").Find("")
Set y = "€"
Set y = Sheets(1).Range("V:V").Find("")
Set y = AZ_Wabe
Set y = Sheets(1).Range("W:W").Find("")
Set y = EP_Wabe
Set y = Sheets(1).Range("X:X").Find("")
Set y = "€"
Set y = Sheets(1).Range("Y:Y").Find("")
Set y = Gesamt
Set y = Sheets(1).Range("Z:Z").Find("")
Set y = "€"

Anzeige
AW: Excel-file wo? bitte Link setzen ... owT
21.03.2019 06:32:56
Alfred
Schönen Guten Morgen,
Eigentlich das Selbe wie der hier angeführte Code:
'Preise abfragen und in Tabelle eintragen
Sub CommandButton1_Click()  'auf UserForm2
Dim hier As Range                  'Datum eintragen
Dim Datumx
Dim Zeilennr
Datumx = Str$(Date)
Set hier = Sheets(1).Range("A:A").Find("")
Zeilennr = hier.Row
hier = Datumx
Dim y As Range
Dim x As Single
Dim GP_Ganzer As Single
Dim GP_Halber As Single
Dim GP_Wabe As Single
GP_Ganzer = CInt(Cells(2, 27))  '=AA2
GP_Halber = GP_Ganzer / 2
GP_Wabe = CInt(Cells(3, 27))    '=AA3
Set y = Sheets(1).Range("B:B").Find("")
y = GP_Ganzer
Set y = Sheets(1).Range("D:D").Find("")
y = GP_Halber
Set y = Sheets(1).Range("F:F").Find("")
y = GP_Wabe
Set y = Sheets(1).Range("C:C").Find("")
y = "€"
Set y = Sheets(1).Range("E:E").Find("")
y = "€"
Set y = Sheets(1).Range("G:G").Find("")
y = "€"
UserForm2.Hide
UserForm1.Show
End 

Sub
Daten -wie Grundpreis (GP_Xxxx) oder Stückzahl (AZX...) werden per Userform abefragt und dann  _
der Reihe nach in die Tabelle eingetragen(

Sub Command ButtonX_Click.....).
Bei den Spalten A bis G funktioniert es tadellos.
Also habe ich diesen Teil des Codes kopiert und die Spalten P bis Z eingesetzt und die  _
Variablen die in diese Spalten gehören.
Die Crux an der Sache -> warum funktioniert der Code bei den einen Spalten und bei den Anderen  _
nicht. Beim ersten Durchlauf wird die Tabelle (Spalten A-G) schön gefüllt. Wie gewünscht.
Beim zweiten Mal bekomme ich gleich bei der ersten Spalte (P) eine Typenunverträglichkeit zurü _
ck.
Wieso nicht schon beim ersten Mal bei den Spalten A-G ? Wo es doch die selben Variablentypen  _
sind?
https://www.herber.de/bbs/user/128551.txt
_
mfg
Alfred Pfeiler

Anzeige
AW: Excel-file wo? bitte Link setzen ... owT
21.03.2019 06:44:16
onur
Du hast wirklich NULL Ahnung von VBA oder?
1)Eine Variable, die als Range deklariert ist, kann nur einen Range aufnehmen, sonst nix, auch nicht, wenn du einen Set davor setzt.
Set y = AZ_Ganzer ?

2)Wenn du schreibst:
A=3
a=4
a=5

kannst du dir auch die ersten 2 Zeilen sparen, da a=5 sein wird (die letzte Änderung).
3)Wenn du einem Range einen Wert zuordnen willst, musst du schreiben:
y.value=AZ_Ganzer

AW: Excel-file wo? bitte Link setzen ... owT
21.03.2019 14:24:27
Alfred
Hallo,
anscheinend wurde der Begleittext zum File schlampig durchgelesen. Nachdem ich meinen Beitrag gesendet habe, gönnte ich mehr einen Espresso mit Zigarette auf der Terrasse mit den Morgenliedern der Vögel als Aufmunterung.......und siehe da, die Ganglien funktionierten wieder.
Ganz einfach das "set" weglassen.Und Alles dreht sich, alles bewegt sich so wie man es wünscht.
Zur Schlampigkeit: ich habe klar und deutlich geschrieben, dass ich dieses sub schon mehrfach in Verwendung hatte. Ohne Probleme!!! Nur die Kopie lief nicht (war bei genauem hinsehn auch keine 1zu1-Kopie.Der große Komfort bei den heutigen Editoren verleitet zu Flüchtigkeitsfehlern).
Wenn man sich mit VBA und seinen Variablen ein ganz kleines bißchen auskennt, weiss man auch sofort, warum was nicht läuft. Man muss sich nur die Mühe nehmen und alles genau durchlesen: wenn man das set weglässt, wird der Variablentyp automatisch als Variant gesetzt und dann kann man damit tanzen, wie man will.Braucht zwar mehr Speicher, aber bei dem Miniprogramm ist das auch wurscht.Ich hoffe, ich habe das jetzt nicht auch so von oben herab erklärt.Ich bin halt nur Elektrotechniker in Rente und kein Überdrüberprofessor.
mfg
Alfred Pfeiler
https://www.herber.de/bbs/user/128570.txt
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige