Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile

Primele zile ale internetului per...
 Ditra 25

Casti USB-C ptr A-54

Aplicatie medicala / asistent med...

De ce vor atația politicieni...
 ERR_ADDRESS_UNREACHABLE

Legea 18/1968 Se mai aplica?

Digi conectare 2 routere prin fir

Succesiune notar versus instanta ...
 Montaj aer conditionat in balcon ...

Cont curent mulți valuta far...

Sugestii plan casa

Experiente cu firme care cumpara ...
 

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

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

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