11. August 201114 j Guten Tag, ich hab hier ein wirklich riesiges Briefkopfmakro, dass auf Word 2000 tadellos funktioniert hat. Nun steigt die Firma auf Word 2010 um und es gibt mehrere Fehler die ich nicht ganz verstehe. Ich bin Schritt für Schritt vorgegangen und hab einzelne Bestandteile überprüft. Bin jedoch eher ein Leihe und verstehe nicht alles was der damalige Programmierer da macht. Hab das Forum hier bei google entdeckt und hoffe, dass mir hier geholfen werden kann. Hier der erste Fehler: Laufzeitfehler 13: Typen unverträglich Der Debugger bleibt dann an dem Punkt stehen: Anzahl = System.PrivateProfileString(Benutzerpfad & "\SachbearbeiterIn.ini", "Sachbearbeiter", "Anzahl") Danke schonmal im vorraus
11. August 201114 j Das liest aus der Datei "SachbearbeiterIn.ini" im Abschnitt "Sachbearbeiter" (vermutlich gekennzeichnet durch die Zeichenkette [sachbearbeiter]) den Wert des Schlüssels "Anzahl" aus. PrivateProfileString Property
11. August 201114 j Danke erstmal, jedoch dürfte doch dann eigentlich dort kein Fehler auftreten. Denn es gibt in dem selben Ordner eine Datei mit dem namen "sachbearbeiterIn" und sowohl der string "sachbearbeiter" wie auch Der integer "anzahl" stehen in der Datei drin. Die Variable in die das ausgelesen eingespeichert wird ist auch ein integer.
11. August 201114 j Die Fehlermeldung deutet auch darauf hin, dass der Rückgabewert der Funktion nicht passende zu der Variable ist.
11. August 201114 j wie gesagt die Variable in die reingespeichert wird ist ein integer und das was augelesen wird ist auch einer. Ich verstehe sowieso nicht ganz warum ein makro dass in word 2000 noch funktionierte nun nicht mehr geht. Da muss es ja irgendwelche Befehle geben die nicht mehr kompatibel sind. Weisst du da irgendwas ?
12. August 201114 j ich geb mal noch ein bisschen mehr quellcode mit, vllt kann mir dann einer sagen wo der fehler liegt. Anzahl = System.PrivateProfileString(Benutzerpfad & "\SachbearbeiterIn.ini", "Sachbearbeiter", "Anzahl") If Not UCase(Sachbearbeiter.txtSachbearbeiter) = UCase(System.PrivateProfileString(Benutzerpfad & "\SachbearbeiterIn.ini", SB, "SachbearbeiterIn")) Then 'der Sachbearbeiter wird neu angelegt Anzahl = Anzahl + 1 'neue Anzahl zurückschreiben System.PrivateProfileString(Benutzerpfad & "\SachbearbeiterIn.ini", "Sachbearbeiter", "Anzahl") = _ Anzahl Die ini Datei liegt im dem selben Ordner und hat folgenden Inhalt: [sachbearbeiter] Anzahl = 0 Die Variable Anzahl ist wie schon gesagt ein Integer.
12. August 201114 j Die Variable Anzahl ist wie schon gesagt ein Integer. wie gesagt die Variable in die reingespeichert wird ist ein integer und das was augelesen wird ist auch einer. Und wie soll das dann funktionieren? Laut der MSDN-Seite gibt die Methode einen String zurück. Und dein Code will dann einen String in eine Integer-Variable packen. Auch wenn in der Textdatei eine Zahl hinter dem Schlüssel steht, so wird diese vermutlich intern als String behandelt.
12. August 201114 j Ok hat gestimmt hab nun Anzahl in einen String verändert. Jedoch kann ich nun mit dem String nicht wie das der Prgogrammierer wollte weiterrechnen.
12. August 201114 j Hier lesen: vb@rchiv · Befehlsreferenz · CInt-Funktion vb@rchiv · Befehlsreferenz · IsNumeric-Funktion
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.