Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
E.on energie aplicație intre...

Masina de tuns... buruieni

Recomandare drona

Exista un soft care sa reia autom...
 Identificare plante

Cum declari o variabila care nu s...

Schimbare certificat de inmatricu...

Poligon auto București
 nelamurire legata de pret la mode...

Hotel cu restaurant si Demipensiu...

Croaziera in Mediterana de Vest 1...

Copilot are pica pe Vladimir Putin
 MicroSoft Edge: Cum pun Google in...

Dashcam

Mini server - VMware

betano.ro
 

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

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

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