Met Private code selecteren door op cel te klikken

Status
Niet open voor verdere reacties.

Oude leerling

Gebruiker
Lid geworden
30 aug 2010
Berichten
554
Geacht forum,
Is het mogelijk dat ,

Als ik ergens in een cel klik in de range G2:G50 (zonder wat in te voeren)
van die rij , A t/m K geselecteerd word.
Ik wil dan de gegevens in die selectie nog even controleren en dan door op Delete
te drukken de selectie zelf wissen.
Onderstaande code is volgens mij niet de juiste oplossing
Jaap

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("G2:G50")) Is Nothing Then Exit Sub
ActiveCell.Offset(-1, -6).Select
 Range(ActiveCell, ActiveCell.Offset(0, 11)).Select

End Sub
 
Onderzoek eerst eens wat 'target' betekent.
 
Zoiets:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, Range("G2:G50")) Is Nothing Then Exit Sub
    Range("A" & Target.Row & ":K" & Target.Row).Select
End Sub
 
snb,
Ik weet natuurlijk wel wat "Target" betekend maar ik wat bedoel je daarmee?

edmoor,
Het werkt maar is toch niet de juiste oplossing
Ik zie nu dat ik het gebied A2 tot K50 daarna niet meer kan sorteren
en dat was wat ik na het wissen van de regel ook nog moest doen. (al dan niet automatisch)
Ik denk dat ik een heel andere oplossing moet gaan zoeken of jij moet nog mogelijkheden zien.
Jaap
 
Het niet kunnen sorteren heeft niets te maken met het voorbeeld dat ik je gaf.
En anders probeer je dit:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    If Intersect(Target, Range("G2:G50")) Is Nothing Then Exit Sub
    Range("A" & Target.Row & ":K" & Target.Row).Select
    Application.EnableEvents = True
End Sub
 
Laatst bewerkt:
Waarom gebruik je dan activecell in de code ?

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.column=7 then target.offset(,1-target.column).resize(,11).select
End Sub
 
Laatst bewerkt:
snb,

Met jouw code kan ik na de selectie gewist te hebben Range("A2:K50") inderdaad sorteren op kolom D

Is het mogelijk dat automatisch te doen
Dus nadat ik op 'Delite' druk het sorteren vanzelf gaat.
Jaap
 
Wat je bedoelt met 'delite' is mij niet duidelijk.

Kijk eens in de VBEditor naar de gebeurtenissen die een werkblad kent.
Daar zullen we het mee moeten doen.
Er zijn geen 'delite', 'delight', of 'delete' gebeurtenisssen.
De doubleclick-gebeurtenis maakt een grote kans.
 
snb,

Moest natuurlijk "Delete" zijn.

Mijn bedoeling was om , als jouw code A t.e.m. K gesorteerd had
deze selectie , door zelf op "Delete" te drukken , te wissen en dat dan automatisch
A2:K50 gesorteerd zou worden.

Als ik je echter goed begrijp dan is er geen oplossing te vinden welke door op
"Delete" te drukken kan worden aangestuurd.
Jaap
 
Doe er eens een bestandje bij. Mij ontgaat de de logica. Je voert eerst gegevens in, vervolgens wil je deze gegevens op een later moment weer verwijderen als ze goed ingevuld zijn?
 
VenA,
Het is t.b.v. debiteurenbeheer.
Van iedere factuur word een regel aangemaakt

Als nu die factuur betaald word , dan wil ik onder kolom G klikken op de betreffende rij
en dat dan die regel geselecteerd word (A tot L)
Dit om even goed te kijken of ik wel de juiste regel heb aangeklikt.

Klopt het dan druk ik "Delete" en dan zou ik willen dat het weer een aaneengesloten geheel word. (Sorteren op Factuurnummer)

Jaap Bekijk bijlage Test Regel wissen + sorteren.xlsx
 
Wat wil niet lukken en wat is eigenlijk de bedoeling van al jouw vragen?

Bestudeer het voorbeeldje maar eens. Hoe je een range kan sorteren staat in het linkje in #8 Alle shapes heb ik er maar uit gehaald want daar kan ik de toegevoegde waarde niet van vinden.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 7 And Target = "Ja" Then
    Application.EnableEvents = False
      With Target.EntireRow
        .Copy Sheets("Betaald").Cells(Rows.Count, 1).End(xlUp).Offset(1)
        .Delete
      End With
      Application.EnableEvents = True
  End If
End Sub
 

Bijlagen

  • Test Regel wissen + sorteren.xlsb
    15,9 KB · Weergaven: 42
Laatst bewerkt:
VenA,

Bedankt voor de mooie oplossing. ook de betaalde rekeningen bewaar je op een ander sheet. Perfect!!

Ik heb grote waardering voor het werk wat jullie Forumleden doen.
Dat je het geduld kan opbrengen om al die goedwillende amateurs wat bij te brengen. (waaronder mijzelf)

Ik snap de oplossing en heb weer wat bijgeleerd.

Zelf had ik ook een oplossing gevonden d.m.v. MsgBox Yes en No . zie hieronder.

Vriendelijke groet , Jaap


Code:
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Column = 7 Then Target.Offset(, 1 - Target.Column).Resize(, 12).Select
 
Dim Msg, Style, Title, Response
Msg = "Wilt u deze regel wissen?"
Style = vbYesNo + vbDefaultButton2 + vbCritical
Title = "Let op!"
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then

  Selection.ClearContents
  Range("A2:L25").Sort Range("D2")
  
Else
  Range("A1").Select
End If

End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan