mit vba gefüllte zellen nicht gleich manuell gefüllten zellen

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von gluehbirne.

    mit vba gefüllte zellen nicht gleich manuell gefüllten zellen

    Hi Community,

    ich bin recht neu in vba - habe aber erfahrung in vb und ein bisschen java.

    ich habe ein problem mit per vba code gefüllte zellen in vb excel. Ich habe einen code erstellt der aus zwei verschiedenen dateien eine range kopiert mittels .value = .value

    das funktioniert auf den ersten blick ganz gut und die zellen werden befüllt. anschließend werden die ca. 450 namen mit jeweils einer liste der 1000 gängigsten männlichen und weiblichen vornamen abgeglichen und es soll in der zelle daneben jeweils ein w bzw. m geschrieben werden. auch die schleifen funktionieren mit meinen testdaten, die händisch erstellt wurden ausgezeichnet (auch mit dem range kopieren wie oben erwähnt). Nehme ich jetzt die "scharfe" datenbank klappt das "Geschlechtsmerkmal" setzen nicht.

    die zellen der beiden quelldateien (also scharf und test) sind gleich formatiert. Wenn ich nun die Zelle der "scharfen" datei manuell mit dem gleichen string bzw namen überschreibe, erkennt die schleife den namen.

    hat jemand zufällig eine idee?

    tausend dank - vba raubt mir den letzten nerv - aber es mach auch spaß und süchtig :D

    mfg gluehbirne
    Code kann ich leider nicht posten - bin gerade nicht auf Arbeit ;)

    also der unterschied zwischen den beiden Datenquellen ist eigentlich nur, dass die "scharfe" ca. 450 Datensätze erhält, die irgendwie durch ein Programm aus unserem SAP ausgelesen wurden (mehr weiß ich darüber nicht). die Testquelle ist eine manuell erstellte excel-tabelle mit dem gleichen Format (spaltenanordnung) mit ca. 15 datensätzen. Aus meiner eigentlichen kleinen Anwendung werden die Daten aus der Quelldatei per worksheet1.range(x,y).value = worksheet2.range(x,y).value kopiert. die eingelesenen datensätze werden nun mittels zweier schleicfen mit der Liste Vornamen abgeglichen. Wie gesagt - das funzt mit der manuell erstellten Quelltabelle. Mit der anderen nicht. wenn ich in der "großen" Tabelle meinetwegen das in A1 geschriebene "Hans" lösche und manuell "Hans" wieder eintrage wird der Eintrag von der Scheife erkannt und m für männlich gesetzt. nachdem das funktioniert (wenn ich es manuell überschreibe) gehe ich davon aus, dass das maschinell geschriebene aus der großen Datei eine Macke hat oder eine Einstellung, die ihc einfach nicht finden kann....
    die prozedur wird über ein click_event auf einen button gestartet. Blanks sind keine drin (vorausgesetzt es sind tatsächlich leere zeilen gemeint)

    meine stundenlange recherche hat ergeben, dass es nicht nur die .value methode gibt, um werte aus einer anderen zelle zu bekommen. leider habe ich die seite nicht mehr gefunden. vielleicht fällt dir das ein?

    bringt es evtl etwas wenn ich per schleife den string aus der zelle auslese, in einer variablen zwischenspeicher, zelle auf "" setze und den String wieder einlese? ich glaube das werde ich mal testen morgen.....
    Ich meine nicht leere Zellen, sondern angehängte Leerzeichen.

    Ausser .Value gibt es noch die Properties .Text und .Formula
    .Text zeigt das an, was tatsächlich sichtbar ist.
    .Formula zeigt die Formel an, falls eine drin steht, ansonsten dasselbe wie .Value
    Es wird in deinem Fall keinen Unterschied machen, aber richtig wäre auf jeden Fall .Value.

    Solange ich deine Füll-Prozedur nicht kenne, kann ich keine vernünftige Aussage treffen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --