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

filter current row

  • Onderwerp starter Onderwerp starter mbn
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

mbn

Gebruiker
Lid geworden
20 mrt 2007
Berichten
62
Ik heb een werkblad met dat in rijen staan Voor elke rij heb ik een knop met een marco eronder die bv cel b van die rij plakt in een printblad op de juiste plaats bv G12.
Ik heb nu voor elke rij een apparte macro waarbij ik alle cellen volledig aan moet wijzen. Is het met een macro te doen dat je de knop( die standaard in cel A staat van iedere rij) alleen de cel letter gebruikt bv B copy naar printblad G12 ipv B12 copy naar printblad G12.
Zo kan elke knop de zelfde macro krijgen en zijn wijzigingen in de macro sneller uit te voeren

Gr Andre
 
Code:
ActiveCell.Row

geeft de rijnummer van de cel waar de cursor staat.

Is dit wat je zocht?

Wigi
 
Code:
ActiveCell.Row

geeft de rijnummer van de cel waar de cursor staat.

Is dit wat je zocht?

Wigi

Denk het niet.

Ik heb een stukje bestand bijgevoegd. onder de linker knoppen zit dan een macro die de cellen moet copieeren naar het printblad.

bv
De rij bij knop 1 (invoerblad) daarvan moet cel C gekopieerd worden naar printblad C15, cel E naar C11,cel G naar C20 ,cel H naar C21 en cel I naar C22

Omdat er soms wel 100 rijen zijn moet ik 100 verschillende macros hebben en dat is ondoenlijk, dus wil ik de macro alleen naar de cellen in de rij laten kijken die ik aanklik.

gr Andre
 

Bijlagen

Laatst bewerkt:
nog iemand een idee?

Ik, en zelfs gisteren al, maar internet wilde niet werken. Vandaar dat jullie mij niet gezien hebben tot nu... :confused:

Code:
Sub WaardenWegzetten()
    With Sheets("invoerblad")
        .Range("C15").Value = Sheets("invoerblad").Range("C" & ActiveCell.Row).Value
        .Range("C11").Value = Sheets("invoerblad").Range("E" & ActiveCell.Row).Value
        .Range("C20").Value = Sheets("invoerblad").Range("G" & ActiveCell.Row).Value
        .Range("C21").Value = Sheets("invoerblad").Range("H" & ActiveCell.Row).Value
        .Range("C22").Value = Sheets("invoerblad").Range("I" & ActiveCell.Row).Value
    End With
End Sub

Wigi
 
Ik, en zelfs gisteren al, maar internet wilde niet werken. Vandaar dat jullie mij niet gezien hebben tot nu... :confused:

Code:
Sub WaardenWegzetten()
    With Sheets("invoerblad")
        .Range("C15").Value = Sheets("invoerblad").Range("C" & ActiveCell.Row).Value
        .Range("C11").Value = Sheets("invoerblad").Range("E" & ActiveCell.Row).Value
        .Range("C20").Value = Sheets("invoerblad").Range("G" & ActiveCell.Row).Value
        .Range("C21").Value = Sheets("invoerblad").Range("H" & ActiveCell.Row).Value
        .Range("C22").Value = Sheets("invoerblad").Range("I" & ActiveCell.Row).Value
    End With
End Sub

Wigi


Hoi wigi,

Ik heb de code in het bestandje gezet maar werkt niet. Als je op de knop drukt ziet hij volgens mij niet welke rij erbij hoort. Ook moet hij het (na het wissen van de cellen in kolom C) de data op het printblad invullen. Ik heb heb een klein bestandje bijgevoegd met jouw code erin. Zou je even kunnen kijken.

gr Andre
 
Typfout van mij. Het moet zijn:

Code:
'...
With Sheets("printblad")
'...

Daarna evt. nog code maken om bepaalde cellen te deleten, als dat nodig is. Dit kan met .ClearContents.

Wigi
 
Typfout van mij. Het moet zijn:

Code:
'...
With Sheets("printblad")
'...

Daarna evt. nog code maken om bepaalde cellen te deleten, als dat nodig is. Dit kan met .ClearContents.

Wigi

Hij vult nu inderdaad het printblad. Echter als je nu op bv knop 1 drukt vult hij het printblad met de data van de regel waar de cursor staat en niet met de data die in de regel achter de knop staat.

gr Andre
 
Als je maar 1 knop hebt, een meerdere rijen met gegevens, hoe ga je Excel en VBA dan laten weten welke rij het moet nemen? Ik heb verondersteld dat je de cursor in de juiste rij zet en dat Excel daarmee aan de slag gaat.

Wigi
 
Als je maar 1 knop hebt, een meerdere rijen met gegevens, hoe ga je Excel en VBA dan laten weten welke rij het moet nemen? Ik heb verondersteld dat je de cursor in de juiste rij zet en dat Excel daarmee aan de slag gaat.

Wigi

Ja dat is ook het probleem. De knop "zweeft" natuurlijk boven een cel en selecteert die cel niet tijdens bedienen. Daar zit ik nu al tijden mee

Gr Andre
 
Ja dat is ook het probleem. De knop "zweeft" natuurlijk boven een cel en selecteert die cel niet tijdens bedienen. Daar zit ik nu al tijden mee

Gr Andre

Doe eens een voorbeeldbestand met die ene zwevende knop.
 
Doe eens een voorbeeldbestand met die ene zwevende knop.

In het bestandje test heb ik op het invoerblad 3 positie regels staan (kunnen ook zo maar 100 regels zijn) Elke regel heeft een knop ervoor staan waaronder de zelfde macro hangt.
Als ik dan op 1 van de knoppen druk moet de data die op die regel staat gekopieerd worden naar het printblad Druk ik weer op een andere knop dan moet hij het printblad leegmaken ( C4 t/m c22) en de data van die regel erin kopieren enz enz

Gr Andre
 

Bijlagen

Dus je gebruikt dan een honderdtal knoppen? :eek: Ik dacht dat het juist de bedoeling was om dat te beperken en slechts 1 knop te gebruiken. En die knop kijkt dan waar de cursor staat en neemt de rij.

Wigi
 
Dus je gebruikt dan een honderdtal knoppen? :eek: Ik dacht dat het juist de bedoeling was om dat te beperken en slechts 1 knop te gebruiken. En die knop kijkt dan waar de cursor staat en neemt de rij.

Wigi


Ja het leek mij makkelijker om voor elke regel weer de knop te zetten om afdrukfouten te voorkomen maar begrijp aan je dat dit niet kan? Dit zou nog al wat voordelen hebben. Ook bij het later verder automatiseren bv alle bonnen achter elkaar laten uitprinten.
 
mbn,

Waarom al die knoppen aanmaken? wordt je file alleen maar groter van en je bent langer bezig. En hoe zou je het dan gaan doen om meer bonnen achter elkaar uit te printen?

Zet een loop om je code welke door de selectie loopt en iedere regel overzet en print.

vb:
Code:
Sub WaardenWegzetten()
Dim c As Range

For Each c In Selection
    If c <> "" Then
        With Sheets("printblad")
            .Range("C15").Value = Sheets("invoerblad").Range("C" & ActiveCell.Row).Value
            .Range("C11").Value = Sheets("invoerblad").Range("E" & ActiveCell.Row).Value
            .Range("C20").Value = Sheets("invoerblad").Range("G" & ActiveCell.Row).Value
            .Range("C21").Value = Sheets("invoerblad").Range("H" & ActiveCell.Row).Value
            .Range("C22").Value = Sheets("invoerblad").Range("I" & ActiveCell.Row).Value
        End With
        
        Sheets("invoerblad").PrintOut Copies:=1, Collate:=True
        
    End If
Next

End Sub
Selecteer meerdere cellen in een kolom en voer de macro uit.
 
Laatst bewerkt:
Ferenc, dit gaat niet lukken want je zit zowel met die c als met ActiveCell.Row, dat niet verandert. Dat zal wrs c.Row moeten worden.

Het leegmaken van de cellen doe je met c.EntireRow.ClearContents

Wigi
 
Wigi,

Geheel gelijk wat betreft de c.Row. Denk dat ik nog zat te dromen.

Maar waarom cellen leegmaken als je ze iedere keer overschrijft en het blad nooit leeg zal gebruiken?
 
Wigi,

Geheel gelijk wat betreft de c.Row. Denk dat ik nog zat te dromen.

Maar waarom cellen leegmaken als je ze iedere keer overschrijft en het blad nooit leeg zal gebruiken?

Ik begrijp dat je bij een willekeurige kolom cellen van de rijen selecteerd en dat dan deze rijen achter elkaar worden uitgeprint op via het printblad? Dat is inderdaad een goede oplossing.

Hoe komt de code er dan uit te zien?

Gr Andre
 
Code:
Sub WaardenWegzetten()
Dim c As Range

For Each c In Selection
    If c <> "" Then
        With Sheets("printblad")
            .Range("C15").Value = Sheets("invoerblad").Range("C" & c.Row).Value
            .Range("C11").Value = Sheets("invoerblad").Range("E" & c.Row).Value
            .Range("C20").Value = Sheets("invoerblad").Range("G" & c.Row).Value
            .Range("C21").Value = Sheets("invoerblad").Range("H" & c.Row).Value
            .Range("C22").Value = Sheets("invoerblad").Range("I" & c.Row).Value
        End With
        
        Sheets("invoerblad").PrintOut Copies:=1, Collate:=True
        
    End If
Next

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