Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
168to172
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
168to172
168to172
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Typen unverträglich

Typen unverträglich
22.10.2002 10:39:44
sina
Hallo zusammen,
ich habe mal wieder die schöne Fehlermeldung 13: Typen unverträglich.

If TBpers.Range("E" & z).Text = "Knab" Or ... Then....
ElseIf TBpers.Range("E" & z) = "Krüger" Or Then.....
ElseIf TBpers.Range("E" & z) = "Geyer" Or ....Then ...
ElseIf TBpers.Range("E" & z) = "Rettig" Or ...Then....
Else:....
End If

der Fehler kommt schon in der ersten Zeile. (Wobei es egal ist ob .text oder .value oder nix )Die Zellen in Spalte E sind als Standard formatiert.
AUch mit einem Cstr. vor den Vergleichsnamen klappts nicht..
Im Archiv hab ich leider auch nix gefunden, was mit helfen könnte, hat jemand noch ne Idee??
Vielen Dank schon mal!
sina

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Typen unverträglich
22.10.2002 11:12:08
Gerrit

Vielleicht solltest Du zuerst das TB aktiviere, dann den Wert aus der Zelle auslesen und auf eine Variable schreiben und dann mit der Variablen ein If beginnen!

sheets("Name").select
Cells(z,5).value = a
if a = "Knapp" Or a = ...Then
.
.

Grüßle
Gerritr

klappt net
22.10.2002 11:20:11
sina
nö, das klappt auch nicht. Wenn ich in den Debuggmodus gehe, dann zeigt er mir ja auch an, dess in der Zelle "Maier" steht. Und .text ist logischerweise ein string, so dass ich das eigentlich mit "Müller" oder zumindest mit Cstr("Müller") vergleichen können sollte, aber das macht er acuh nicht..
Re: klappt net
22.10.2002 11:27:01
Gerrit
Leg mal die Vergleichtexte auf Variablen und mach .value (ist nämlich auch standard bei Zellen) anstatt .text und vergleich die Variable mit der zelle!
Klingt komisch aber so wars mal bei mir!

Grüßle Gerrit

Anzeige
Re: klappt net
22.10.2002 11:27:01
Gerrit
Leg mal die Vergleichtexte auf Variablen und mach .value (ist nämlich auch standard bei Zellen) anstatt .text und vergleich die Variable mit der zelle!
Klingt komisch aber so wars mal bei mir!

Grüßle Gerrit

kompliziert
22.10.2002 11:30:20
sina
das wird dann ewig lang, da er bei jedem if und elseif die sache mit 4 oder 5 namen vergleichen soll.
ich glaub ich schreib die namen einfahc irgendwo in die datei rein, dann kann man das auch einfacher ändern (es geht um team-zusammensetzungen), und dann soll er das mit den zellen vergleichen..
mal schaun...
Re: kompliziert
22.10.2002 11:35:51
Gerrit
Porsche oder Daimler?
Re: kompliziert
22.10.2002 11:40:16
sina
nee, ich nix schaffe bei porsche oder daimler..
wieso???
Anzeige
vergleich mit zellen geht auch nicht
22.10.2002 11:43:12
sina
nein, den vergelich mit den zellen macht er acuh nicht. dabei steht doch in beiden zellen genau das gleiche drin!?
ich versteh das nicht..
Re: kompliziert
22.10.2002 11:44:17
Gerrit
das mit den teams klang typisch nach automobil Industrie!
Hab mal als Werkstudent 2 Jahre für Porsche gearbeitet!
Die Problemstellungen waren ähnlich!

Excel macht übrigends manchmal auch Probleme, wenn Du zuviele Or oder And hast!
versuchs vielleicht mal nur mit einem Vergleich!

Grüßle Gerrit

stimmt
22.10.2002 11:47:33
sina
also das mit den zellen macht er auch nicht..(s.o.)
also werkstudent bin ich auch, aber eben nicht in der automobilindustrie..
mist, mit einem vegleich funktionierts.. wie mach ich das dann aber, wenn ich das mit 5 oder 6 vergleichen will? geht das was über arrays??

Anzeige
naja
22.10.2002 12:00:13
Gerrit
jetzt bin ich dann am Ende. Bei Arrays passe ich da hab ich immer die Finger weg gelassen!
du könntest mit if arbeiten ist aber ziemlich viel schreibkram!
Immer in die else die neue if abfragen!
Was genau willst Du eigentlich machen vielleicht fällt mir dann was besseres ein!
Re: naja
22.10.2002 12:20:57
sina
es geht um die auswertung von arbeitszeiten nach teams und nach tätigkeit. dazu brauch ich als erstes für wen gearbeitet wurde, um daraus das team zu bestimmen. der rest läuft wohl dann..
konkret: in spalte E steht Müller -> müller gehört zu team 1 -> die stundenzahl aus spalte K muss zu team 1 gezählt werden..
das problem is ja acuh, dass sich die teams jedes jahr ändern, d.h. es ist immer ungeschickt, wenn man im code dann 20 zeilen if ändern muss.. geschickter wäre schon, wenn das am anfang einmal steht, und geändert werden kann..
Anzeige
Re: naja
22.10.2002 12:26:32
Gerrit
Ich hatte mal nen ähnliches...
also Du machst auf einem Tabellenblatt die 20 Namen in Namensfelder die nennstdu z.B. FName1, Fname2.....

Du baust eine Public Sub auf die die Namensfelder ausliest und auf globale Variablen setzt!

ich erklär dir gleich wies weiter geht jetzt muss ich essen!

Ich weiß hört sich kompliziert an ist aber so einfach wie Werte aus einer Zelle lesen!

Bis in ner halben Stunde!
Grüßle
Gerrit

Wieder da
22.10.2002 13:17:30
Gerrit
Füg ein Modul ein, wenn Du noch keines hast!
Am Anfang des Moduls deklarierst Du die globalen Variablen!

Global varName1
Global varName2
.
.
.
Global varNamen

Danach baust Du eine Public Sub um auf die Variablen den wert der Namensfelder zu legen.

Public Sub Namenszuweisung ()
VarName1 = Thisworkbook.Names("FName1").RefersToRange
'FName1 ist das Namensfeld in dem der Erste Name steht!
VarName2 = Thisworkbook.Names("FName2").RefersToRange
.
.
.
VarNamen = Thisworkbook.Names("FNamen").RefersToRange

end sub

so nun hast Du nach aufruf dieser prozedur auf den Variablen jeweils die Namen, die im TAbellenblatt stehen!

Nun kannst Du Deine andere Prozedur schreiben!
Am Anfang von Dieser Prozedur rufst Du einfach die Prozedur
Namenszuweisung auf. Nun kannst Du mit den Variablen VarName arbeiten!

sheets("TBpers").select
Cells(z,5).value = a
if a = VarName1 Or a = ...Then

Vielleicht hilfts Dir ja!
Viel Spass
Gerrit

Anzeige
Re: Wieder da
22.10.2002 13:29:25
sina
da hab ich doch dann wieder das problem, das ich das mit if und zu vielen or's machen muss. oder ich schreibe für jede variable ne eigene if-abfrage (bzw eben elseif.)
aber das mit denn arrays is auch nciht so einfach, es gibt anscheinend keinen befehl, der mir sagt, wieviele positionen in meinem array sind..
ich glaub ich muss mir was völlig anderes überlgen..
mist!
Re: Typen unverträglich
22.10.2002 13:35:51
Hans W. Hofmann
Ihr stochert da zeimlich im Nebel.
Was ist z?
Was kommt nach den ....


Gruß HW

Re: Wieder da
22.10.2002 13:53:34
Gerrit
Also war grad noch kurz in einer besprechung!
Muss nebenher noch schaffen!
Du kannst mit New Collection arbeiten!
Das ist eine Ansamlung von Objekten, die durch Zahlen aufgerufen werden.
Nichts anderses als Tisch ist 1, Vogel ist 2 und dann rufst Du in eienr Schleife die Zahlen anstat die Objekte!"

Sub test()
Dim K as new Collectio

K.Add VarName1, "1"
K.Add VarName2, "2"
.
.
.


For m = 1 to k.Count step 1 'weiss nicht ob der Count Begriff tut
A = K(m)
If Cells(z,5).value = A then

else

end if

next m

So hast Du ne Schleife die die namen Vergleicht!

Anzeige
vielen dank!
22.10.2002 13:55:38
sina
also, ich hab da ne variante mit den arrays, wobei ich da noch schauen muss, wie ich das mit ner schleife durch alle 4 arrays mach usw.. aber falls das nicht funzt, komme ich auf deine idee zurück.
vielen dank auf jeden fall mal für deine ausführlichen bemühungen!!!
sina

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige