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

verborgen kolommen ook copiëren en plakken

Status
Niet open voor verdere reacties.

sis123

Gebruiker
Lid geworden
17 feb 2005
Berichten
284
Ik heb een blad met een aantal kolommen (alle kolommen)

Een gebruiker vult op zijn file (ander bedrijf) bepaalde gegevens in (maar een paar kolommen dus)

Ik heb voor die gebruiker mijn blad gekopieerd en de meeste kolommen verborgen (alsook beveiligd).

Als deze file binnenkomt voor ik een filter uit en zou ik alle kolommen moeten kunnen kopiëren en plakken (zonder deze eerst zichbaar te maken)

Voor de rijen geldt dit niet, daar enkel de uitgefilterde rijen copy

Vraag is dus gewoon

Is het mogelijk om volledige rijen (inclusief) verborgen kolommen (zonder deze zichtbaar te maken) te copiëren en vervolgens te plakken op een andere sheet waar eveneens (andere) kommen verborgen zijn ?
 
Laatst bewerkt:
Lukt niet, selectie gaat niet :(
bijlage

Is het mogelijk om via een macro-code de kolom met waarde "x" te autofilteren en vervolgens select en copy de volledige rijen inclusief de verborgen kolommen

Alvast bedankt
 

Bijlagen

Laatst bewerkt:
Ook jij bent weeral gesteld Sis

Hier is de code:

Code:
Sub kopieren()
Dim i As Integer, l As Long, lastrow As Long, m As Long
lastrow = Range("A" & Rows.Count).End(xlUp).Row
m = 0
ActiveSheet.Range("A1:J1").AutoFilter field:=8, Criteria1:="x"
For l = 3 To lastrow
    If Rows(l).Hidden = False Then
        m = m + 1
        For i = 1 To Range("IV1").End(xlToLeft).Column
            Sheets("Blad3").Cells(m, i) = Cells(l, i)
        Next
    End If
Next
ActiveSheet.ShowAllData
End Sub

De gefilterde rijen komen op Blad3 terecht.

Wigi
 
Perfekt Wigi, nogmaals bedankt voor uw hulp.
En weeral iets bijgeleerd. :thumb:
 
Hallo,

toch nog 1 ding : hoe wordt de code als je enkel wil kopiëren zonder te plakken, dus om nadien op een ander blad "invoegen gekopieerde cellen" manueel uit te voeren ?
 
Dan zou ik gewoon hetzelfde te werk gaan, en dan de gegevens laten knippen met een kleine macro wanneer je dat wilt. De code kan je met de macro recorder opnemen.
 
Perfekt Wigi, nogmaals bedankt voor uw hulp.
En weeral iets bijgeleerd. :thumb:
sis123 als je probleem is opgelost mag je de vraag op opgelost zetten. :thumb:
 
dat lukt prima met het opnemen van de macro,

heb juist 1 probleem hierbij :

als in blad user meerdere gegevensrijen komen dan dien ik blad3 met een grote range te knippen om zeker alle gegevens te hebben (= variabel)
 

Bijlagen

Laatst bewerkt:
dat lukt prima met het opnemen van de macro,

heb juist 1 probleem hierbij :

als in blad user meerdere gegevensrijen komen dan dien ik blad3 met een grote range te knippen om zeker alle gegevens te hebben (= variabel)

Zoiets?

Code:
Sub Macro4()
    Sheets("user").Select
    Application.Run "'test verborgen.xls'!Blad1.kopieren"
    Sheets("Blad3").UsedRange.Cut Sheets("beheer").Range("A" & Rows.Count).End(xlUp).Offset(2)
End Sub

De rest van macro4 mag weg.

Wigi
 
macro 4 is goed zo maar hij mag de selectie niet plakken op blad beheer, de gebruiker moet de rij kunnen bepalen om de geknipte selectie in te voegen via rechtemuisknop

Wat ook kan is de geknipte selectie plakken nadat op blad beheer een rij is geactiveerd (plaats voor invoegen) - bijlage (groene rij bv)
 

Bijlagen

Laatst bewerkt:
Ik weet dat je items kan toevoegen aan het menu dat je krijgt bij rechtermuisklik. Ik heb dat zelf nog nooit gebruikt, dus ik zou zeggen: zoek via google op

Excel vba add context menu

en je zal wel wat vinden.

Wat je moet doen is 1 item toevoegen, en dat items verwijst dan naar de macro die je gebruikt om de gegevens te plakken op die plaats.

Wigi
 
Zo dan?

Code:
Sub Macro4()
    Sheets("user").Select
    Application.Run "'test verborgen.xls'!Blad1.kopieren"
    Sheets("Blad3").UsedRange.Cut ActiveCell
End Sub

Er wordt geknipt en dan geplakt op de plaats van de cursor. (ActiveCell). Dat lijkt mij het simpelste.

Wigi
 
Bij een heel simpel voorbeeld werkt de code niet.

Na copy en plak van de code. Dus copy code van deze pagina net zoals bij "test verborgen".
Ik begrijp het niet.

--------------------------------------------------------------------------------------------------------------------------

Bij een nieuwe file

rij1 veldnamen
rij 2 autofilter
voorwaarde kolom a bevat gegevens
--> werkt de code

merkwaardige vaststelling is dan wel dat als cel a3 waarde test heeft maar geen "x" en cel a4 eveneens waarde test heeft maar geen "x" , deze toch beiden geselecteerd worden en gekopieerd op het nieuwe blad - bij de file "test verborgen" doet hij dit naar wens
 

Bijlagen

Laatst bewerkt:
Ik begrijp niet echt goed wat je wilt, maar test deze code eens uit en zeg dan in verstaanbare termen wat er nog verkeerd gaat.

Code:
Sub kopieren()
Dim i As Integer, l As Long, lastrow As Long, m As Long
lastrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
m = 0
ActiveSheet.Range("A1:Z1").AutoFilter field:=8, Criteria1:="x"
For l = 3 To lastrow
    If Rows(l).Hidden = False Then
        m = m + 1
        For i = 1 To Range("IV1").End(xlToLeft).Column
            Sheets("Blad3").Cells(m, i) = Cells(l, i)
        Next
    End If
Next
ActiveSheet.ShowAllData
End Sub

Wigi
 
Nu werkt de code in map1.
Wat is eraan gewijzigd ?

Je moet eens kijken in bijlage, hier staat de macro op blad1, maar bij uitvoeren kopieert hij maar een gedeelte (tem kolom G) naar blad2.
 

Bijlagen

Lastcell is gewijzigd.

Wat jij fout doet is dat je "IV1" niet vervangt door "IV5"

Wigi
 
Je hebt gelijk Wigi, zo werkt het prima. :thumb: Bedankt !
Waarvoor staat IV5 dan ? veldnamen ?

ps. Ik ben een echte amateur voor VB en VBA maar ik wil er zeker en vast meer van leren.
Weet je geen gebruiksvriendelijke cursus ?
 
Je hebt gelijk Wigi, zo werkt het prima. :thumb: Bedankt !
Waarvoor staat IV5 dan ? veldnamen ?

Code:
Range("IV5").End(xlToLeft).Column

is de nummer van de kolom die je vindt als je vanaf cel IV5 (IV is de laatste kolom) naar links zou opschuiven tot als je een niet-lege cel tegenkomt. Geeft dus de nummer van de "laatst gebruikte kolom".

ps. Ik ben een echte amateur voor VB en VBA maar ik wil er zeker en vast meer van leren. Weet je geen gebruiksvriendelijke cursus ?

Zoek op het forum. Ik en anderen hebben al regelmatig nuttige referenties opgegeven.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan