Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
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
Laufzeitfehler 13 - Typen unverträglich
06.08.2014 20:56:55
Erwin
Hallo Forum,
ich habe eine Auswahlliste (Userform1) aus einer anderen Anwendung übernommen, auf die neuen Namen angepasst und möchte diese aufrufen.
Leider erscheint Laufzeitfehler 13 - Typen unverträglich.
Ich glaube, ich habe den Fehler auch gefunden (s. Kommentar), weis aber nicht, wie ich ihn beheben kann.
https://www.herber.de/bbs/user/91942.xlsm
Wer kann mir bitte weiterhelfen?
Grüße - Erwin

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 13 - Typen unverträglich
06.08.2014 21:03:57
Daniel
Hi
man sollte doch einfach ab und zu mal in der Hilfe lesen, da steth zu IIF folgende Bemerkung:
Bemerkungen
IIf wertet immer sowohl den Teil truepart als auch den Teil falsepart aus, auch dann, wenn nur einer von beiden Teilen zurückgegeben wird. Aus diesem Grund kann es zu unerwünschten Nebeneffekten kommen. Wenn z.B. die Auswertung von falsepart zu einem Fehler aufgrund einer Division durch Null führt, tritt ein Fehler auch dann auf, wenn expr den Wert True hat.
sprich: um Fehler abzufangen ist IIF nicht geeignet !!!
hier muss dann ein normales IF - THEN - ELSE ran:
If IsNumeric(.List(a)) Then
vWerta = CDbls(.List(a))
Else
vWertaa = .List(a)
End If
Gruß Daniel

Anzeige
AW: Laufzeitfehler 13 - Typen unverträglich
06.08.2014 21:47:44
Erwin
Hallo Daniel,
danke für die schnelle Hilfe; jetzt bekomme ich auch die UF auf und ich kann etwas auswählen.
Leider kommt ein weiterer Fehler bei:
'Spalte 1 - 5 = Spalte A; b; C, D, E in anderes Blatt ab Spalte A einfügen
shMitarbeiterliste.Range(Cells(gZeile, 1), Cells(gZeile, 5)).Copy Destination:=shAltersstruktur.Cells(eZeile, 1) _
'Spalte 8 - 11 = Spalte H, I, J , K in andees Blatt ab Spalte F einfügen
shMitarbeiterliste.Range(Cells(gZeile, 8), Cells(gZeile, 11)).Copy Destination:= _
shAltersstruktur.Cells(eZeile, 6)
eZeile = eZeile + 1: cnt = cnt + 1
Laufzeitfehler 1004 - Die Methode "Range für das Objekt '_Worksheet' ist fehlgeschlagen.
Außerdem wenn ich etwas in Spalte C auswähle, was tatsächlich vorhanden ist, kommt nichts in Spalten D und E ähnlich.
Kann das noch jemand bitte prüfen?
Danke - Erwin

Anzeige
AW: Laufzeitfehler 13 - Typen unverträglich
06.08.2014 21:59:15
Daniel
will man bei Range(Cells(), Cells()) ein bestimmtes Tabellenblatt ansprechen, so muss die Tabellenblattangabe immer vor den beiden Cells stehen:
Range(Sheets().Cells(), Sheets().Cells())
Steht der Code in einem Tabellenblattmodul, muss die Sheetangabe zusätzlich vor der Range erscheinen:
Sheets().Range(Sheets().Cells(), Sheets().Cells())
dass es sich hierbei immer um das selbe Sheet handeln muss, sollte selbstverständlich sein.
Gruß Daniel

AW: Laufzeitfehler 13 - Typen unverträglich
06.08.2014 22:30:39
Erwin
Hallo Daniel,
danke für den Tipp, aber mit meinen VBA Kenntnissen ist das nur try an error.
Ich verstehe ja, dass du mit deinen Hilfen, mir auf die Sprünge helfen willst, damit ich es künftig selbst kapiere, aber ich komme nicht weiter.
Hier mein Versuch, der natürlich gescheitert ist.
'Kopierbereich
'Spalte 1 - 5 = Spalte A; b; C, D, E in anderes Blatt ab Spalte A einfügen
'Spalte 8 - 11 = Spalte H, I, J , K in andees Blatt ab Spalte F einfügen
shMitarbeiterliste.Range(Cells(gZeile, 1), shMitarbeiterliste.Cells(gZeile, 5)).Copy Destination:=shAltersstruktur.Cells(eZeile, 1)
shMitarbeiterliste.Range(Cells(gZeile, 8), shMitarbeiterliste.Cells(gZeile, 11)).Copy Destination:=shAltersstruktur.Cells(eZeile, 6)
eZeile = eZeile + 1: cnt = cnt + 1
Da ich früh aufstehen muss, ist heute für mich Schluss.
Vielleicht kannst du das ganze ja nochmal ansehen und ein paar Minuten investieren, um es lauffähig zu machen.
Ich würde mich sehr freuen, wenn du mir eine entsprechende Datei zur Verfügung stellen könntest.
Danke und gute Nacht - Erwin

Anzeige
AW: Laufzeitfehler 13 - Typen unverträglich
06.08.2014 22:52:59
Daniel
hi
naja, es sollte nicht so schwer sein, das Tabellenblatt vor BEIDEN Cells innererhalb der Range hinzuzufügen.
Wenn du es vor einem geschafft hast, dann ist das zweite doch Kinderkram.
Ist ja im Prinzip das gleiche, nur noch einmal.
Gruß Daniel

AW: Laufzeitfehler 13 - Typen unverträglich
07.08.2014 06:19:56
Erwin
Guten Morgen Daniel,
danke für den Tipp, aber wenn du mein VBA Level ansiehst, kannst du sicher erkennen, dass das so nichts wird.
Ich versuche schon wieder seit einer halben Stunde das umzusetzen, was du angedeutet hast, leider ohne Erfolg.
'Kopierbereich
'Spalte 1 - 5 = Spalte A; b; C, D, E in anderes Blatt ab Spalte A einfügen
'Spalte 8 - 11 = Spalte H, I, J , K in andees Blatt ab Spalte F einfügen
sh(Mitarbeiterliste).Range(Mitarbeiterliste().Cells(gZeile, 1), shMitarbeiterliste().Cells(gZeile, 5)). _
Copy Destination:=shAltersstruktur.range(Altersstruktur().Cells(eZeile, 1) _
sh(Mitarbeiterliste).Range(Mitarbeierliste().(Cells(gZeile, 8), shMitarbeiterliste().Cells(gZeile, 11)). _
Copy Destination:=shAltersstruktur.range(Altersstruktur().Cells(eZeile, 6)
eZeile = eZeile + 1: cnt = cnt + 1
Ich habe keine Ahnung, wie das gehen soll - und die Zeit habe ich auch nicht, jede Kombination auszuprobieren.
Vielleicht kannst du mir ja die Fehler richten und die Datei mal selbst ausprobieren?
Danke - Grüße - Erwin

Anzeige
AW: Laufzeitfehler 13 - Typen unverträglich
07.08.2014 08:55:09
EtoPHG
Hallo Erwin,
Wenn etwas wichtig ist und man unter Zeitdruck steht, muss man langsam machen!
Nur so kommt man schneller zum Ziel.
Würdest du die Vorschläge lesen und verstehen und sorgfältig umsetzen, sähest du schnell, dass shAltersstruktur wohl nicht das Gleich ist wie Altersstruktur().
Gruess Hansueli

AW: Laufzeitfehler 13 - Typen unverträglich
07.08.2014 10:42:26
Erwin
Hallo Hansueli,
danke für deine Ausführungen; dabei kommt so etwas heraus, was natürlich auch nicht geht.
'Mitarbeiterliste().Range(Mitarbeiterliste().Cells(gZeile, 1), Mitarbeiterliste().Cells(gZeile, 5)). _
'Copy Destination:=Altersstruktur().range(Altersstruktur().Cells(eZeile, 1) _
'Mitarbeiterliste().Range(Mitarbeierliste().(Cells(gZeile, 8), Mitarbeiterliste().Cells(gZeile, 11)). _
'Copy Destination:=Altersstruktur.range(Altersstruktur().Cells(eZeile, 6)
oder auch so was
shMitarbeiterliste.Range(Cells(gZeile, 1), shMitarbeiterliste.Cells(gZeile, 5)).Copy Destination:=Altersstruktur.Cells(eZeile, 1)
shMitarbeiterliste.Range(Cells(gZeile, 8), shMitarbeiterliste.Cells(gZeile, 11)).Copy Destination:=Altersstruktur.Cells(eZeile, 6)
Wie soll ich das hinkriegen, wenn ich aufgrund meines VBA Levels nur mit try and error das versuche.
Ich verstehe euch Profis auch, ihr wollt, dass die Unwissenden auch etwas lernen, aber im Moment bin ich da weit weg.
Wie gesagt, es wäre toll, wenn jemand die richtigen Zeilen posten könnte.
Vielen Dank euch allen
Erwin

Anzeige
Mensch, Erwin, ist das denn so schwer?!
07.08.2014 13:03:51
Luc:-?
Dir wurde doch gesagt, jedes Auftreten von Cells muss mit der Variable verbunden wdn, die das jeweilige Blatt referenziert/repräsentiert, also …
shMitarbeiterliste.Range(shMitarbeiterliste.Cells(gZeile, 1), shMitarbeiterliste.Cells(gZeile, 5))
Alternativ kannst du das natürlich auch in ein With-Konstrukt einbetten …
With shMitarbeiterliste
.Range(.Cells(gZeile, 1), .Cells(gZeile, 5))
End With
Von Jemandem, der partout mit VBA arbeiten will, muss man schon erwarten können, dass er sich auch mit den VBA-Grundlagen befasst, zB mal was in der VBEditor-Hilfe nachliest. Wie lange willst du sonst mit der Trial'n'Error-Methode brauchen?! Das ist dann doch wie „Stochern im Nebel“!
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Laufzeitfehler 13 - Typen unverträglich
07.08.2014 13:08:04
Daniel
Hi Erwin:
ich habe dir geschrieben, dass du das Tabellenblatt vor den beiden Cells innerhalb der Range-Funktion angeben sollst.
du hast jetzt das Tabellenblatt vor dem zweiten Cells hinzugefügt, aber nicht vor dem ersten.
Was hat dich veranlasst so zu handeln?
richtig wäre es so (in den anderen Zeilen natürlich genauso):
shMitarbeiterliste.Range(shMitarbeiterliste.Cells(gZeile, 1), shMitarbeiterliste.Cells(gZeile, 5)).Copy
Gruß Daniel

Danke
07.08.2014 13:56:02
Erwin
Hallo Zusammen,
ich danke euch allen für euere Geduld.
Wie es immer so ist, möchte der Chef schnell etwas gelöst haben, was ich halt nicht kann, weil ich es nicht gelernt habe.
In anderen Fälle, in denen ihr mir alle sehr geholfen habt, wurde dann schon mal ein kompletter Code gepostet...
Super, dass es das Forum und die aktiven Antworter gibt.
Grüße - Erwin

Anzeige
Warum machst du es dann? Außerdem ...
07.08.2014 14:30:28
Luc:-?
…scheinst du in einer solchen Situation schnell in Panik zu geraten, Erwin,
was einer schnellen Lösungsfindung idR entgegen steht (s. H-ueli!). ;->
Bedenke bitte, dass ein Forum weder hausaufgaben.de ist noch sein kann!
Luc :-?

AW: Warum machst du es dann? Außerdem ...
07.08.2014 14:45:45
Erwin
Hallo Luc :-?,
um auf deine Frage zu antworten - weil es mich durchaus interessiert.
Nur - manchmal habe ich mehr Zeit und kann mir besser reindenken und recherchieren - manchmal klappt halt nichts und ich habe keine / wenig Zeit :)
Ich bin ja froh, dass ich immer wieder Beispiele finde, die mit etwas Bastelei so passend gemacht wird, dass es den Zweck erfüllt, so wie auch in diesem Fall mit euerer Hilfe.
Erwin

Anzeige
Na, dann aber auch NachLESEN! ;-) owT
07.08.2014 14:52:30
Luc:-?
:-?

AW: Danke
07.08.2014 19:06:22
Daniel
Wir sind hier kein No-Cost-Ausbildungsbetrieb und auch kostenloser Softwaredienstleister!
Gruß Daniel

146 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige