[VBA-Excel] Vorige cel opzoeken

Pagina: 1
Acties:
  • 280 views sinds 30-01-2008
  • Reageer

  • Kapoen
  • Registratie: Mei 2002
  • Laatst online: 22:39
Op dit moment ben ik bezig aan het ontwikkelen van een eenvoudige
'applicatie' onder Excel 2000 en VBA.

Het is de bedoeling dat de inhoud van een gewijzigde cel wordt weggeschreven
in een ander .xls bestand. Het openen van het andere bestand en selecteren van worksheets en zo lukt wel best, maar het selecteren van de gewijzigde cel lukt mij niet.

Als elke gebruiker op enter duwt zou het eenvoudig zijn: dan moet ik gewoon maar de linkse cel van de actieve nemen. Helaas kan je dus ook gewoonweg klikken in een andere cel en dan weet ik de gewijzigde cel niet meer te vinden.

Ik probeer de actie van het wijzigen op te vangen met deze event:
code:
1
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

In de MSDN heb ik iets gevonden van Applications.PreviousSelections, ik weet echter niet goed wat ik hier mee moet (mijn kennis van VBA is vrij beperkt).

Hoe zien jullie dit?

Clowns to the left of me, Jokers to the right


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Record eens een macro met de acties die jij wil, en ga dan eens naar de VBA code kijken die gegenereerd werd.

https://fgheysels.github.io/


  • Kapoen
  • Registratie: Mei 2002
  • Laatst online: 22:39
Ik heb deze macro opgenomen: in cel C4 tik ik iets in en daarna klik ik op een willekeurige cel. Vanaf die cel klik ik terug op C4. Hierdoor krijg ik volgende code:
code:
1
2
ActiveCell.FormulaR1C1 = "123"
Range("C4").Select

De macro recorder neemt dus alleen absolute waarden op voor de cellen?

[edit]
Overigens ben ik beter af met deze event te gebruiken denk ik:
code:
1
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Deze event doet zich alleen voor als er effect iets gewijzigd wordt...

[ Voor 36% gewijzigd door Kapoen op 09-09-2003 12:03 ]

Clowns to the left of me, Jokers to the right


  • Kapoen
  • Registratie: Mei 2002
  • Laatst online: 22:39
Ok het probleem is opgelost (daarom een nieuwe reply ipv een edit ;))

In eerste instantie ga ik gewoon in de (General) event een String declareren:
code:
1
Dim celAdres As String


Dan ga ik in de Workbook_SheetSelectionChange event deze String invullen:
code:
1
2
3
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
   celAdres = ActiveCell.Address
End Sub

Hierdoor krijg ik na elke muisklik en/of enter het cel-adres van de vorige cel netjes ingevuld.
Voor de verwerking die volgt indien er een verandering plaatsvind gebruik ik de Workbook_SheetChange:
code:
1
2
3
4
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  'idioot verwerkingsvoorbeeld
Cells.Range(celAdres).Value = celAdres
End Sub


Kinderlijk eenvoudig dus :D

Clowns to the left of me, Jokers to the right