• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Macro uitvoeren op welbepaalde cel

Status
Niet open voor verdere reacties.

SafeConstruct

Gebruiker
Lid geworden
23 apr 2021
Berichten
84
Goeiedag,
Ik heb een werkblad (DBASE FAKS) waar ik gegevens heb om een faktuur te maken.
Een werkblad apart is aangemaakt (FAK) van waaruit de faktuur wordt opgeslagen in pdf (wat werkt) door het lanceren van een knop (save as pdf) waarachter een macro zit (link door factuurnummer met DBASE FAKS kolom A 'FAK').
Waarvan ik droom is dat ik de faktuur (FAK) kan opmaken vanaf het werkblad DBASE FAKS. Dus in dit voorbeeld sta ik op de cel A2 voor FAK 2534 , en hier wil ik wanneer ik bijvoorbeeld klik op de cel A2 excel me vraagt of ik hiervoor de macro wil lanceren (of misschien is er een ander hulpmiddel maar liefst zonder het bijvoegen van een kolom) ?
En zo wil ik verder gaan met gegevens in cel A3 - A4 - ...

Ziehier wat ik heb geprobeerd, doch zonder resultaat

Code:
Sub Faktuur_via_dbase()
'
' Faktuur_via_dbase Macro
'

'
    ActiveCell.Value = ““
    Selection.Copy
    Sheets("FAK").Select
    Range("C19").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlTop
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Sheets("DBASE FAKS").Select
End Sub
 

Bijlagen

Wat ik er zo vlug uit begrijp zoek je naar dit achter het betreffende werkblad.
Dubbelklik in een cel van kolom A in het werkblad.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 And Target.Count = 1 Then
        [COLOR="#008000"]'Lanceer je macro[/COLOR]
    End If
End Sub
 
Alvast dank voor deze snelle feedback.
Doch vind ik niet de exacte locatie waar ik deze dien te plaatsen in bovenstaande macro :-(
 
Het is een event routine, die plaats je achter het werkblad waar je wilt dat die dubbelklik op een cel gaat werken.
 
Als beginneling volg ik niet echt doch ik probeer te volgen door onderstaande doch lukt niet direct ...

Code:
Sub Faktuur_via_dbase()
'
' Faktuur_via_dbase Macro
'

'
    
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 And Target.Count = 1 Then
    ActiveCell.Value = ““
    Selection.Copy
    Sheets("FAK").Select
    Range("C19").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlTop
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Sheets("DBASE FAKS").Select
    End If
End Sub
End Sub
 
Met de kennis die je er van hebt gaan we er zo niet uit komen, met alle respect.
Plaats een voorbeeld documentje.
 
Schitterend ! Alvast zoek ik nu verder doch dit is dus (als ik het goed begrijp) geen macro ?
Hoe kan ik dit (wanneer ik bevestig) dan de macro lanceren die staat in blad FAK gelinkt aan de knop Save as pdf ? Want daaruit activeer ik de macro Save_as_PDF ? Ik vermoed dat dit moeilijk wordt aangezien die zich in een ander blad situeert ?

Code:
Sub Save_as_PDF()
'
' Save_as_PDF Macro
'

'
    file_name = Range("B1").Text
    file_root = Range("J1").Text
    
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        file_root & file_name & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
'
' Print_pg_1 Macro
' Print pg 1
'

'
'    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
'        :=True, IgnorePrintAreas:=False
End Sub
 
Dat kan allemaal maar heb ik vanavond geen tijd meer voor.
Alle routines in VBA zijn macro's, maar er zijn verschillende typen macro's.
In dit geval is het een gebeurtenis (event) macro die wordt gestart door een dubbelklik in een cel.
 
Laatst bewerkt:
Alleszins reeds van harte dank, ik probeer verder me te verdiepen hierin via google.
Nogmaals dank.
 
Hoi,

Nog even naar gekeken en ik denk dat dit is wat je wilt:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 And Target.Count = 1 And Target.Row > 1 And Target.Value <> "" Then
        With Sheets("FAK")
            .Range("C19") = Target.Value
            .Activate
        End With
        Cancel = True
    End If
End Sub
 
Beste Edmoor, schitterend , dit is inderdaad een hele vooruitgang voor mij.
Ik heb enkel nog een vraagje daar ik nog niet goed met de plaatsing van de event-macro weg kan. Ik heb dus een vereenvoudigde versie van mijn xlsx op dit forum geplaatst (er zijn nog tal van sheets die hier niet zijn inbegrepen).
Hoe kan ik jouw bovenstaande nu integreren in mijn nieuwe xlsx ?
Alvast bedankt voor jouw sublieme hulp !
 
Hoi,

Dubbelklik in de VBA Editor links bovenin op het werkblad waar die event macro moet komen en plak daar die code in:

SC.jpg
 
Goeiedag, ik heb de macro die ik lanceer op cel D1 (99999) in sheet 'database' en deze gaat automatisch naar de sheet 'CT' en plaatst in de cel A1 de inhoud.
Welnu, ik had liever inhoud van de cel C2 meegenomen maar het lukt me niet.
Kan iemand me daarbij helpen ?

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 4 And Target.Count = 1 And Target.Row > 1 And Target.Value <> "" Then
        With Sheets("CT")
            .Range("A1") = Target.Value
            .Activate
        End With
        Cancel = True
    End If
End Sub
 

Bijlagen

Waar denk je dat de 4 in Target.Column = 4 voor staat?
Hint:
1 A
2 B
3 C
4 D
5 E
 
Inderdaad, maar mijn probleem is : ik wil de macro uitvoeren als ik dubbelklik op cel D1 (inhoud 99999) maar wil de inhoud van cel C1 (99999-V)
 
Dat kan zo:
Code:
.Range("A1") = Range(Target.Address).Offset(, -1)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan