• 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.

Regel kopiëren naast makroknop

Status
Niet open voor verdere reacties.

Albatros

Gebruiker
Lid geworden
4 nov 2001
Berichten
388
Hoi,

Via een het klikken op een macroknop, wil ik de regel naast de makroknop, kopiëren naar locatie H1.
Echter als er een nieuw product wordt toegevoegd, moet er een nieuwe regel ingevoegd worden.
Vervolgens werkt de kopieer knop niet meer correct, omdat de macro absolute celadressen bevat.

De cellen een naam geven is een oplossing. Is er ook een andere methode, om de regel naast de macroknop te activeren?

Albatros
 

Bijlagen

Doe het zonder knoppen, maar met een dubbelklik in kolom A.

In bladmodule Blad1.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And Target <> vbNullString Then
  Range("H1").Resize(, 3) = Target.Offset(, 2).Resize(, 3).Value
  Cancel = True
 End If
End Sub
 
Beste HSV,

Bedankt voor je reactie.
Je oplossing is zeer creatief, en snel op te zetten. Echter ik wilde niet meteen alle informatie opwerpen, die ik voor mijn bestand nodig heb anders wordt het te lang.

Ik wil met een andere macroknop aan langer bereik naast de knop kopiëren naar H1
Met de volgende code krijg ik dan ook een foutmelding:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And Target <> vbNullString Then
  Range("H1").Resize(, 3) = Target.Offset(, 2).Resize(, 3).Value
  Cancel = True
 End If
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 9 And Target <> vbNullString Then
  Range("H1").Resize(, 3) = Target.Offset(, -6).Resize(, 3).Value
  Cancel = True
 End If
End Sub

Tevens wil ik na de uitvoeren van de programmacode, dat deze weer een andere macro aanstuurt, om bv een pagina te printen, en het bereik in H1 weer leeg maakt.
Misschien allemaal te veel voor een programmacode, en dan toch maar de cel benoemen?

Albatros
 
Twee éénzelfde events in één werkblad gaat niet.
Werk met cases.

Even uit de losse pols.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
select case target.column
Case 1 
 if Target <> vbNullString Then
  Range("H1").Resize(, 3) = Target.Offset(, 2).Resize(, 3).Value
end if
case 9
 if Target <> vbNullString Then
     Range("H1").Resize(, 3) = Target.Offset(, -6).Resize(, 3).Value
  End If
     end select
cancel = true
End Sub
 
Beste HSV,

De aangeboden oplossing dekt volledig de lading!
Bedankt hiervoor. :thumb: :thumb:
Heb ik toch nog een aanvullende vraag:
Kan ik (en hoe) in de programma code een opdracht zetten zoals

Code:
case 9
 if Target <> vbNullString Then
     Range("H1").Resize(, 3) = Target.Offset(, -6).Resize(, 3).Value
  End If
     end select
cancel = true
[FONT=Arial Black]makro1[/FONT]
End Sub

om zodoende een makro aan te sturen die in een module staan?
In deze module staat dan bv: ga naar blad2, en print het bereik B1:M50. (Het kan ook in de programmacode van Blad1, maar ik wil even de grens opzoeken)

Albatros
 
Met zoiets moet het wel lukken:

Code:
Dim s As String
    s = "makro1"
    Run s

Of
Code:
Run "makro1"
 
Laatst bewerkt:
Zoals jij het hebt staan Albatros is al goed, met voorwaarde dat "Makro1" de naam is van de macro.
sub Makro1()
........
end sub
 
Beste HSV,

Bedankt voor je bijdrage, ik kan nu verder met mijn projectje dankzij jouw hulp. :thumb: :thumb:
En idd een makro stuur ik aan met het commando macro :o
(VenA ook bedankt voor je reactie)

Albatros
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan