Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Fferi50

    Topikgazda

    válasz bteebi #48570 üzenetére

    Szia!
    "A lényeg az lett volna, hogyha a Target cella tartalmának az eleje egy adott sztring, akkor abból a cellából szedje ki az eredményt és másolja be egy másikba."
    Akkor miért nem a Target cellát vizsgálod?
    1. Először is kapcsold ki az eseménykezelést: Application.EnableEvents=False
    Majd a makró végén kapcsold vissza: Application.EnableEvents=True
    Ennek elmaradása esetén valahányszor a makró beír egy adatot valamely cellába, ismét lefut az eseménykezelő makró.
    2. Mivel a Set Target=Columns("A") utasítással az egész oszlopot kijelölöd, annak első cellája az első sorban van. A következő utasítás ezért veszi az első sort.
    Nem tudom miért kell neked a Target -et megváltoztatni?
    Szerintem elég lenne megnézni, hogy az A oszlopban van-e? De mivel elmondásod szerint az A oszlopba olvasol be, ezért ez nagyon nagy eséllyel igaz.
    Maga a Target objektum, amit az eseménykezelő megkap, az a cella, amelyben megváltozott az érték. Ezért azt a cellát kellene megnézned szerintem.
    3. Hogyan is léptetné a sort, ha nincs benne ciklus. (De szerintem nem is kell léptetni.)
    A folyamatot az zavarhatja, ha az új mérési eredmények hamarabb megjönnek, mint ahogyan az eseménykezelés lefut. Ezt ki kell próbálni.
    Szerintem elég ezt megnézni:
    If Target.Column=1 Then
        If Left(Target.Value,4)="Data" Then
    Természetesen eseménykezelés ki és bekapcsolásával.
    Illetve, ha mindig a 10. sorban van, akkor még azt a feltételt is beteheted:
    If Target.Row Mod 10 =0 Then   '(azaz, ha a sor száma osztható tizzel  akkor megyünk tovább.
    Üdv.

Új hozzászólás Aktív témák