Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Auto Complete cu sugerare date
Last Updated: Apr 08 2007 12:24, Started by
kharloss
, Mar 06 2007 14:27
·
0
#1
Posted 06 March 2007 - 14:27
Salut . I-mi trebuie un macro ca acesta :
http://puremis.net/e.../code/041.shtml sa faca acelasi lucru. Numai ca acel macro nu functioneaza . Nu i`mi dau seama unde e greseala. Multumesc anticipat. Aici script : ------------------------------------------------- Option Explicit Dim i As Long Sub KeyEventOn() For i = 65 To 90 Application.OnKey "{" & i & "}", "'MyValidation """ & i & """'" Next End Sub Sub KeyEventOff() For i = 64 To 90 Application.OnKey "{" & i & "}" Next End Sub Sub MyValidation(ByVal KeyCode As Long) Dim strText As String, strList As String If Not TypeOf Selection Is Range Then Exit Sub strText = Selection.Value & Chr(KeyCode) strList = MakeArr(strText) Selection.Value = strText If strList = "False" Then Selection.Validation.Delete Else With Selection.Validation .Delete .Add 3, 1, 1, Formula1:=strList .IgnoreBlank = True .InCellDropdown = True .ShowInput = True End With End If End Sub Function MakeArr(ByVal strChr As String) As String Dim a As Variant a = [MyList].Value For i = LBound(a) To UBound(a) If InStr(1, a(i, 1), strChr, vbTextCompare) = 1 Then MakeArr = MakeArr & a(i, 1) & Chr(&H2C) End If Next If MakeArr <> "" Then MakeArr = Left(MakeArr, Len(MakeArr) - 1) Else MakeArr = "False" End If End Function ___ mod edit: foloseste tag-urile de cod [ codebox][ /codebox] Edited by RAZ, 08 March 2007 - 11:00. |
#2
Posted 07 March 2007 - 13:50
kharloss, on Mar 6 2007, 14:27, said: Salut . I-mi trebuie un macro ca acesta : http://puremis.net/e.../code/041.shtml sa faca acelasi lucru. Numai ca acel macro nu functioneaza . Nu i`mi dau seama unde e greseala. Multumesc anticipat. ... Salut Am incercat codul si... functioneaza, insa nu oricum. Daca-mi spui ce eroare primesti, pot sa-mi dau seama mai cu precizie de ce nu merge. Iata ce am crezut eu ca e important. 1. Am denumit range-ul in care se aflau valorile "MyList" asa cum spune nenea din link-ul ala (in caz ca nu ai facut-o, mie mi-a scapat prima oara). 2. lansezi KeyEventOn (nu uita sa lansezi KeyEventOff la sfarsit). 3. Aici e buba, MyValidation nu functioneaza decat pentru o lista mica de valori, altfel da eroare. La mine strList poate avea maxim 250 de caractere. Solutii: A. Poti sa folosesti Range-ul MyList in loc de strList, caz in care codul devine: Option Explicit Dim i As Long Sub KeyEventOn() For i = 64 To 90 Application.OnKey "{" & i & "}", "'MyValidation """ & i & """'" Next End Sub Sub KeyEventOff() For i = 64 To 90 Application.OnKey "{" & i & "}" Next End Sub Sub MyValidation(ByVal KeyCode As Long) Dim strText As String If Not TypeOf Selection Is Range Then Exit Sub strText = Selection.Value & Chr(KeyCode) Selection.Value = strText With Selection.Validation .Delete .Add 3, 1, 1, Formula1:="=MyList" .IgnoreBlank = True .InCellDropdown = True .ShowInput = True End With End Sub Am atasat un xls cu varianta asta. B. Modifici MakeArr astfel incat in loc de lista, returneaza un sub-Range format din celulele care incep cu litera tastata si numit ... subRange de exemplu. Acest subRange il folosesti apoi in MyValidation in linia: .Add 3, 1, 1, Formula1:="=subRange"Asa scapi de limitarea de la pct. 3 si obtii exact functionalitatea initiala. Deocamdata nu mai am timp sa incerc varianta asta, poate mai incolo daca nu reusesti. Oricum nu se intampla nimic spectaculos, functionalitatea e departe de autocomplete-ul de la alte programe, doar iti arata o lista de cuvinte care incep cu litera pe care ai tastat-o. Spor, Mihai Attached Files |
#3
Posted 07 March 2007 - 15:47
merci. chiar daca atasamentul functioneaza cu restrictiile de care vorbeai, nu ma ajuta prea mult.Exact asta i-mi doresc. AUtocomplete.Chiar daca codul acesta nu e ok, exista o alta varianta pt. problema mea ?
|
#4
Posted 08 March 2007 - 10:19
aici atasamentul cu eroarea care i-mi apare la scriptul initial.
Attached Files |
#5
Posted 08 March 2007 - 10:42
kharloss, on Mar 8 2007, 10:19, said: aici atasamentul cu eroarea care i-mi apare la scriptul initial. La eroarea pe care o ai cred ca nu e scrisa bine linia urmatoare din KeyEventOn Application.OnKey "{" & i & "}", "'MyValidation """ & i & """'"Vezi pe la numarul de ghilimele " si apostrofuri '. Diferit in codul original fata de al meu este ca in loc de intreaga lista iti afiseaza numai cuvintele care incep cu litera tastata. Numai prima litera ! Se poate si altfel, un autocomplete mai bun, de exemplu sa-ti faci o forma pe care sa pui un ComboBox si sa arati forma respectiva la KeyEventOn. Din pacate chiar nu am timp sa fac un exemplu, mi-ar lua 1-2 ore cred si cum in prezent programul meu de lucru e 9 - 21 crede-ma ca nu mai vad decat "papa" si "nani" cand ajung acasa Poate pe duminica... |
#6
Posted 09 March 2007 - 15:55
kharloss, on Mar 7 2007, 15:47, said: merci. chiar daca atasamentul functioneaza cu restrictiile de care vorbeai, nu ma ajuta prea mult.Exact asta i-mi doresc. AUtocomplete.Chiar daca codul acesta nu e ok, exista o alta varianta pt. problema mea ? Am reusit sa fac un fisier de exemplu cu un ComboBox, am folosit si codul de mai sus. Cum functioneaza: Dictionarul de cuvinte este in sheet-ul "dictionar", coloana A, trebuie sa fie gata sortata. Introducerea se poate face in orice celula din primul sheet. La deschiderea fisierului se ruleaza automat codul din vechiul exemplu, cel cu OnKey, se vede la ThisWorkbook - procedura Workbook_Open. Astfel nu mai e nevoie de lansarea KeyEventOn. Daca este totusi nevoie sa nu porneasca automat, se poate reface procedura in modulul 1. La tastarea unei litere, apare o forma cu un ComboBox in care se regasesc cuvintele, se face scroll pana la primul cuvant care incepe cu litera tastata. Forma apare in zona celulei active din sheet. La tastarea urmatoarelor litere se parcurge lista din ComboBox si se selecteaza cuvantul potrivit. Cu sagetile se pot selecta cuvintele potrivite din lista. La ENTER se completeaza celula activa cu valoarea selectata din ComboBox. La ESC se ascunde forma fara a se completa nimic in celula activa. Limitari:
Succes. Attached Files |
#7
Posted 09 March 2007 - 19:28
Extraordinar. Chiar nu credeam ca o sa ma ajute cineva la modul asta.
Multumesc mult. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users