Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VBA] Excel selectiescript *

Pagina: 1
Acties:

  • Tostie
  • Registratie: Januari 2001
  • Laatst online: 24-02 03:31
Hallo,

Ik heb 2 scriptjes voor Excel. Die zorgen dat aangegeven word in welke rij en kolom ik werk.

Ze doen beiden voor 80% wat ze moeten doen.
De eerste werkt mooi, maar in deze kan ik de rijen en kolomen boven en naast het selectievakje niet selecteren.

De tweede omlijnd alle vakjes ipv. alleen de rij of kolom.

Heb dit probleem ook al voorgelegd op een ander forum, maar wil hier ook eens een balletje opgooien.
Kan iemand me hier mee helpen ?

Script 1 :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
'Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
h = ActiveCell.Height
w2 = ActiveCell.Width
t = ActiveCell.Top
W = ActiveCell.Left

On Error Resume Next
ActiveSheet.Shapes("RectangleV").Delete
On Error Resume Next
ActiveSheet.Shapes("RectangleH").Delete

ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, t, W, h).Name = "RectangleV"
With ActiveSheet.Shapes("RectangleV")
.Fill.Visible = msoFalse
.Fill.Transparency = 1#
.Line.Weight = 2#
.Line.ForeColor.SchemeColor = 10
.PrintObject = False
End With

ActiveSheet.Shapes.AddShape(msoShapeRectangle, W, 0, w2, t).Name = "RectangleH"
With ActiveSheet.Shapes("RectangleH")
.Fill.Visible = msoFalse
.Fill.Transparency = 1#
.Line.Weight = 2#
.Line.ForeColor.SchemeColor = 10
.PrintObject = False
End With
End Sub


Script 2 :
code:
1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  For j = 1 To 2
    If [A100] = "" Then [A100] = Target.Address
    With Choose(j, Range([A100]), Target)
      .Offset(1 - .Row).Resize(.Row - 1).Interior.ColorIndex = Choose(j, 0, 7)
      .Offset(, 1 - .Column).Resize(, .Column - 1).Interior.ColorIndex = Choose(j, 0, 7)
      End With
  Next
  [A100] = Target.Address
End Sub


Alvast bedankt

PS, kan ik topic wijzigen in [VBA] Excel selectie script ?

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 23:28

Reptile209

- gers -

Ik snap niet helemaal wat er volgens jou mis is met beide macro's. Volgens mij doen ze precies wat je wil :).
In de eerste macro kan ik geen plek vinden waar ik "rijen en kolomen boven en naast het selectievakje niet [kan] selecteren". In de 2e wordt 'netjes' de rij en kolom van de actieve cell paars gekleurd, volgens mij ook wat er zou moeten gebeuren.

Probeer eens duidelijker te omschrijven wat er nu niet werkt zoals je dat zou willen. Daarbij vast de waarschuwing dat je hier geen antwoord voorgekauwd gaat krijgen, dus probeer zelf eens om het voor elkaar te krijgen en laat dan wat specifieker weten wat er niet lukt.

Wat je PS betreft: vraag het even in een topic report (Afbeeldingslocatie: http://tweakimg.net/g/forum/images/icons/icon_hand.gif)

Zo scherp als een voetbal!


  • Tostie
  • Registratie: Januari 2001
  • Laatst online: 24-02 03:31
In Script 1 bijvoorbeeld.

Ga ergen in het document staan. Nu staat er boven en links naast het geselecteerde vakje een rode omlijnde balk.

Nu wil ik bijvoorbeel 1 rij omhoog. in plaats van die rij te selecteren, selecteer ik de "RectangleH"
Dit zou ik graag dus het veld willen hebben ;)

Script 2 is redelijk goed. Daar zou ik in plaats van dat elk geselecteerd veld/kolom ipv rood omlijnd is zoals script is. de hele rij/kolom 1 omlijning hebben

  • Tostie
  • Registratie: Januari 2001
  • Laatst online: 24-02 03:31
Ik denk dat deze al heel ver is. Doet alleen soms raar en laat alle velden/kolommen gekleurd staan maar dat een bijzaak denk ik. Leukscripte of ter referentie te houden ofc

code:
1
2
3
4
5
6
7
8
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheets(1).UsedRange.Borders.LineStyle = xlLineStyleNone
If Target.Column = 1 Or Target.Row = 1 Then Exit Sub
    With Target
      .Offset(1 - .Row).Resize(.Row - 1).BorderAround xlContinuous, xlMedium, 3
      .Offset(, 1 - .Column).Resize(, .Column - 1).BorderAround xlContinuous, xlMedium, 3
    End With
End Sub


groeten