Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

fehler???

fehler???
22.01.2004 09:58:09
Santschi

Private Sub Combocompany_Change()
Dim Companyausw As Integer
Companyausw = Tabelle3.Cells(c, 2).Value - 2
Tabelle2.txtUnit.Value = Tabelle3.Cells(Companyausw, b).Value
End Sub

kann mir jemand sagen was ich falsch mache?

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: fehler???
22.01.2004 10:24:20
Andreas Walter
Ja ich kann Dir sagen was Du falsch machst.
Du stellst keine Frage
Du sagst nicht was Du erreichen willst
Du sagst nicht, ob eine Fehlermeldung kommt
Aber trotzdem
Tabelle3.Cells(Companyausw, b).Value
sieht verdächtig aus. Wie wäre es mit
Worksheets("Tabelle3").Cells(Companyausw, b).Value
Und verallgemeinern - kommt dreimal vor.
txtunit sagt mir nichts (habe ich nie benutzt)
AW: fehler???
22.01.2004 10:31:55
Santschi
also in einer zelle (c2 in der Tabelle3) steht ein Wert. Dierser muss ich - 2 rechnen und das ganze Resultat in eine Variable schreiben. Dann möchte ich ein Textfeld (txtUnit) mit dem Wert aus der Tabelle 3 Spalte b füllen. Die Variable Companyausw, die wir vorher gerechnet haben, gibt die Zeile an.
Und ja es kommt eine Fehlermeldung... "Anwendungs- oder objektorientierter Fehler"
Anzeige
AW: fehler???
22.01.2004 10:34:56
Santschi
Jetzt hab ich es mal so geändert...
Jetzt kommt der Fehler: Typen unverträglich
Kann ich keinen Integer nehmen???

Private Sub Combocompany_Change()
Dim Companyausw As Integer
Companyausw = Worksheets(Tabelle3).Cells(c, 2).Value - 2
Tabelle2.txtUnit.Text = Worksheets(Tabelle3).Cells(Companyausw, b).Value
End Sub

AW: fehler???
22.01.2004 10:43:03
Andreas Walter
Langsam jetzt - bitte genau arbeiten
Du hast jetzt

Private Sub Combocompany_Change()
Dim Companyausw As Integer
Companyausw = Worksheets(Tabelle3).Cells(c, 2).Value - 2
Tabelle2.txtUnit.Text = Worksheets(Tabelle3).Cells(Companyausw, b).Value
End Sub

Ich habe Dir gesagt
> Und verallgemeinern - kommt dreimal vor.
Du hast nur ZWEI und nicht DREI Mal geändert
Und Du hast es FALSCH geändert
Ich habe gesagt
Worksheets("Tabelle3").Cells(Companyausw, b).Value
Du hast gemacht
Worksheets(Tabelle3).Cells(Companyausw, b).Value
Wo sind die (((verdammte))) Anführungszeichen
Was steht in der variable c
mach
MSGBOX C
nach dem DIM Befehl
Was steht in Worksheets("Tabelle3").Cells(c, 2).Value
Mach
MSGBOX Worksheets("Tabelle3").Cells(c, 2).Value
Nach o.g. 1. MSGBOX Befehl
Jetzt ganz langsam und sorgfältig arbeiten
Anzeige
AW: fehler???
22.01.2004 10:50:52
Santschi
es gibt schon in der zeile einen fehler... index auserhalb des gültigen bereichs
in der zelle c2 steht eine zahl (etwa 1 bis 10)
c ist keine variable... wenn du combocompany gemeint hast, dann kann ich nicht schauen weil es einen fehler gibt...
AW: fehler???
22.01.2004 11:17:11
Andreas Walter
Es fehlen Dir ein Paar Grundlagen
Du willst Feld C2 ansprechen
Du hast den Befehl
...Cells(c, 2)....
benutzt. Das ist nicht korrekt.
Korrekt wäre ...Cells(2, 3)....
(Erster Parameter Zeilennummer in Deinem Fall 2,
Zweiter Parameter SpaltenNUMMER - nicht Buschstabe - in Deinem Fall 3, weil C der dritte Buchstabe des Alphabets ist.)
Das Gleiche bei
Cells(Companyausw, b)
anwenden. Das ist nicht richtig - hier wird eine VARIABLE mit Namen b herangezogen.
Anzeige
AW: fehler???
22.01.2004 11:26:39
Santschi
aha... :o) also ich hab jetzt mal alles geändert! aber in der zeile companyausw.... kommt immernoch ein fehler: index auserhalb des gültigen bereichs...


Private Sub Combocompany_Change()
Dim Companyausw As String
Companyausw = Worksheets("Tabelle3").Cells(2, 3).Value + 2
Tabelle2.txtUnit.Text = Worksheets("Tabelle3").Cells(Companyausw, 2).Value
End Sub

AW: fehler???
22.01.2004 11:32:49
Andreas Walter
Hast Du wirklich ein Blatt mit dem Namen

Tabelle3
Bitte GENAU Kontrollieren (Zwischenräume, Gross/Klein, Umlaute)
Oder meinst Du das 3. Blatt (egal wie das Ding heisst)
Dann wäre es
Companyausw = Worksheets(3).Cells(2, 3).Value + 2
Da ist 3 ohne Gänsefüßchen und bedeutet das dritte Blatt
Wir nähern uns das Ziel
Anzeige
AW: fehler???
22.01.2004 11:38:28
Santschi
hey cool jetzt funktionierts! :o) ich hab jetzt einfach 3 geschrieben anstatt Tabelle3! :o)))
Messi vielmal für die Mühe!!!
@andreas
22.01.2004 11:38:49
y
die variable ist als string deklariert und wird als integer benutzt
cu Micha
@Micha
22.01.2004 11:57:09
Andreas Walter
Danke
Hatt ich auch gesehen, aber dann auch getestet und es geht
Wenn in der Zelle A1 45 steht dann bringt
dim stringvar as string
stringvar =cells(1,1).vlaue+2
tatsächlich 47 in der stringvar
!
@andreas
22.01.2004 12:07:30
y
ist ja komisch
so weigert sich vba:

Sub test()
Dim i As String
i = i + 10
End Sub

und in verbindung mit cells nicht
muss ich ja nicht unbedingt verstehen oder ? *grummel*
cu Micha
Anzeige
Erklärung für Micha
22.01.2004 12:16:48
Andreas Walter
Der Unterschied ist
Du hast
Dim i As String
i = i + 10

Excel kuckt sich zuerst
i+10
an und versucht es zu berechnen. Das ist schon ein Typ Mismatch
Daher Fehlermeldung
Bei dem Fall
Companyausw = Worksheets(3).Cells(2, 3).Value + 2
Schaut sich Excel zuerst was rechts von "=" ist und wertet es aus. Zuerst interessiert es Excel überhaupt nichts, was links vom "=" ist. Die Auswertung erfolgt im Stil von Variant (kuck mal was kommt)
Rechts wird berechnet, meinetwegen 45 + 2 ergibt 47
Dann kuckt Excel was links von "=" ist sagt sich, opla, da muss ich diese Variant Berechnung in eine zeichenkette umwandlen - und Excel macht es.
Ist schon logisch
Anzeige
Danke an Andreas
22.01.2004 12:31:02
y
thx,
und stimmt !
so meckert die dusslige kiste nicht:

Sub test()
Dim i As String
i = Worksheets(1).Cells(1, 1) + 5
i = i + 10
End Sub

ist ja irre !! ;-)
cu Micha

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige