Hej. Ja, det är möjligt i VBA. Där finns ett event som heter SheetChange. När detta event utlöses kan du kolla om värdet i cellen är SWED och i så fall ersätta det med Swedbank. Tjenare. Tack för snabbt svar jag gjorde denna, fullösning eller bra lösning? den funkar som kortkommando.. Ah, fixade det.. Du använder Inte så snyggt om andra events sker samtidigt ;) Om det "bara" är så att han vill slippa skriva ut hela namnet så kan han väl använda autokorrigering under Verktyg - Alternativ - Stavning ? Där finns ju redan från början inlagt en del, tex om jag skriver (e) så blir det eurotecken. I den listan kan man lägga till egna förkortningar och vad de skall autokorrigeras till. Fundera på vad som händer om kunden av misstag skriver t.ex. SDEW och inte uppmärksammar det. Förkortningar i Excel
Är ute på uppdrag, en snubbe här frågade om det är möjligt att fixa lite förkortningar i ett av deras dokument
Han vill kunna skriva förkortningen på en kund i ett fält, typ SWED så ska det bli swedbank etc.. Går detta?Sv: Förkortningar i Excel
Kanske kan du också kolla på Data>validation beroende på ditt behov
Räcker det?Sv:Förkortningar i Excel
Sub SnabbKommandoKontoNr()
Dim accounts As Worksheet
Dim keyIndex As Integer
Dim i As Long
Dim searchedKey As String
searchedKey = ActiveCell.Value
Set accounts = Worksheets(4)
Debug.Print searchedKey
For i = 2 To accounts.Rows.Count - 1
If accounts.Rows(i).Cells(1).Value = vbNullString Then Exit For
If LCase(accounts.Rows(i).Cells(1).Value) = LCase(searchedKey) Then
ActiveCell.Value = accounts.Rows(i).Cells(3).Value
Exit For
End If
Next
End SubSv:Förkortningar i Excel
Men inte från eventet
ActiveCell.Value blir = string.empty från eventet, funkar när man exekverar den från ett kortkommando..
Vet du vad som är fel?Sv: Förkortningar i Excel
eventet skikar med Target som är reference till rätt cell.. men nu blir det rundgång.
Jag sätter target.Value som i sin tur triggar SheetChanged ;) Hur fixar man detta? :DSv:Förkortningar i Excel
Application.EnableEvents = False
i början på din metod.
i slutet på din metod slår du på den igen
Application.EnableEvents = TrueSv: Förkortningar i Excel
I .net finns det nått som kallas routed events.. Man kan allså säga åt eventet (det evetent man är i) att inte trigga andra event. Går inte detta i VB6?
Man kan ju sätta en flagga före och efter oxo. Typ updating = true / falseSv: Förkortningar i Excel
/PeterSv: Förkortningar i Excel
Själv föredrar jag formulär och listrutor med valbara alternativ, samt där det går att lägga till dem som saknas men bara EN gång.
Autokorrigeringen är bättre i sammanhanget, då man kan hoppas (kräva :) att den som skriver in också kontrollerar att det ändrar sig till det förväntade.
//Ann