Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Combinatie de conturi pentru tran...

Adaptor semnal hi to low

Jocuri Android Multiplayer online...

Diferenta consum smart meter - Co...
 Recomandare demontare+instalare ...

CAIET SERVICE PREDEAL II

Internare spital psihiatrie

CM de snooker 2024
 Scot penele dupa montajul tamplar...

Masina de spalat vase si grasimea

Noua lege de acces in paduri

Sunt ouale proaspete?
 Aplicatie invatare limba Germana

Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile
 

Excel VBA - If Target.Column N sau global?

- - - - -
  • Please log in to reply
No replies to this topic

#1
dUa

dUa

    Member

  • Grup: Members
  • Posts: 257
  • Înscris: 01.03.2007
Va salut,

Am un fisier (sheet) Excel in care am un dropdown list cu multiple select si am nevoie ca multiple select-ul sa poata fi controlat si prin stergerea unei valori eronate. Astfel, am ajuns la acest cod, insa, nefiind programator, ma lovesc de urmatoarea problema:

If Target.Column 4

care ma limiteaza doar la coloana 4. Eu vreau ca acest cod sa ruleze pe fiecare coloana din Sheet. Intrebarile mele, de necunoscator, sunt:

1. Am reperat corect linia care imi limiteaza doar aceasta coloana? (imi imaginez ca pot enumera fiecare coloana, insa nu vreau numai sa-mi rezolv problema, cat sa si inteleg)
2. Exista o valoare globala pe care o pot adauga a.i. sa-mi ia toate coloanele?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
Dim lUsed As Long
If Target.Count > 1 Then GoTo exitHandler
On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo exitHandler
If rngDV Is Nothing Then GoTo exitHandler
If Intersect(Target, rngDV) Is Nothing Then
'do nothing
Else
Application.EnableEvents = False
newVal = Target.Value
Application.Undo
oldVal = Target.Value
Target.Value = newVal
If Target.Column = 4 Then
If oldVal = "" Then
	 'do nothing
	 Else
	 If newVal = "" Then
	 'do nothing
	 Else
	 lUsed = InStr(1, oldVal, newVal)
	 If lUsed > 0 Then
		 If Right(oldVal, Len(newVal)) = newVal Then
			 Target.Value = Left(oldVal, Len(oldVal) - Len(newVal) - 2)
		 Else
			 Target.Value = Replace(oldVal, newVal & ", ", "")
		 End If
	 Else
		 Target.Value = oldVal _
			 & ", " & newVal
	 End If
	
	 End If
End If
End If
End If
exitHandler:
Application.EnableEvents = True
End Sub


Va multumesc pentru ajutor.

Edited by dUa, 19 February 2015 - 10:50.


Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate