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

Rij kopieren naar ander document. activecell?

Status
Niet open voor verdere reacties.

tntwesp

Gebruiker
Lid geworden
30 sep 2009
Berichten
8
Ik ben al een week of 2 aan het stoeien om een oplossing te vinden voor het volgende probleem. Het mag duidelijk zijn dat het stoeien nog geen bevredigend resultaat opgeleverd heeft...

Ik heb een document met daarin een heleboel data. Vanuit dat document wil ik een aantal, door mij gekozen rijen kopieeren naar een ander, bestaand document.
De bedoeling is dat dit gedaan wordt door:

1. Een cel in een gekozen rij aan klikken (activecell ??) en vervolgens via een knop in de werkbalk een macro laten werken die de gekozen rij onderaan in het andere bestand zet.

of

2. de eerst kolom in het bestand is een volgnummer. Een macro starten die vraagt om dat nummer. Dit nummer invoeren waarna de macro de bijbehorende rij in het andere bestand zet.

Het lijkt zo simpel maar 't lukt mij niet.

De grootste problemen waar ik nu tegen aan loop zijn:
Ik kan niet overweg met activecell :confused:
Het lukt niet om de hele bijbehorende rij te selecteren
De gekopieerde rij, overschrijft de vorige.

Ik heb al op het forum gezocht naar oplossingen maar zie ondertussen door de bomen het bos niet meer.

Heeft er iemand een idee om dit op te lossen?
 
tntwesp,

Heb je de handelingen al eens met de macrorecorder gedaan?
Die schrijft de code voor je, naderhand kun je proberen deze te vereenvoudigen.
 
ja, ik ben al bezig geweest met de macrorecorder. Het probleem is dan dat ik in de macro verwijzingen krijg naar specifieke cellen of rijen en die zijn elke keer anders.

Ik realiseer me nu dat ik nog vergeten ben :eek: te zeggen dat het bron document iedere dag vervangen wordt en ik iedere dag andere rijen gekopieerd wil hebben in het 'verzamel'document.
 
tntwesp,

Het lukt niet om de hele bijbehorende rij te selecteren
Klik op het getal van de rij en hij is geselecteerd.

Misschien weet iemand hier een oplossing voor je.(die het ook gebruikt)
Kijk hier even.
 
Laatst bewerkt:
1. Een cel in een gekozen rij aan klikken (activecell ??) en vervolgens via een knop in de werkbalk een macro laten werken die de gekozen rij onderaan in het andere bestand zet.

Dubbelklik in de gewenste rij

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  usedrange.rows(target.row).copy workbooks(2).sheets(1).cells(rows.count,1).end(xlup).offset(1)
End Sub
 
Tja ehhm :eek: de hele rij selecteren is natuurlijk wel een erg simpele oplossing waar ik helemaal overheen gekeken heb en waar ik zeker mee verder gekomen ben. :eek: :eek:

Ondertussen heb ik op het forum nog een oplossing gevonden waar ik nagenoeg niets van snap :shocked: maar die een gedeelte van mijn probleem oplost.

Code:
Sub boz()
'
' boz Macro
' De macro is opgenomen op 30-9-2009 door tntwesp.
'

'

Dim iSchrijfRij As Long
iSchrijfRij = Sheets("verzamelblad").Range("A" & Rows.Count).End(xlUp).Row + 1
Selection.EntireRow.Copy
Sheets("verzamelblad").Rows(iSchrijfRij).PasteSpecial xlValues
Application.CutCopyMode = False
Application.Goto Sheets("bron").Range("A1"), True

End Sub

Ik heb deze macro uitgeprobeerd op 2 werkbladen binnen 1 bestand en dan gaat het goed.

Probleem is dan dat mijn bronbestand elke dag gegenereerd wordt en een andere naam heeft.
In de code staat Sheets("bron") en die moet volgens mij op een of andere manier variabel worden.
Ergens zag ik:

Code:
Naam = ActiveWorkbook.Name
xxxxx
xxxxx
xxxxx
Workbooks(Naam).Close False

Is dat een mogelijkheid om hier te gebruiken of zijn er betere? andere? oplossingen.
 
tntwesp,

Code:
Sheets("bron").
Ik heb er niet veel verstand van maar "Bron" is hier de naam van het blad.
Hij gaat dus steeds terug naar het blad met de informatie.

Heb je de code van snb al geprobeerd?
Ik heb hem geprobeerd maar hij copy de regel er onder inplaatst van de geselecteerde regel.
 
Laatst bewerkt:
tntwesp,

Als je deze code die je al gevonden had achter het blad zet met de gegevens en je dubbel klikt op de cel verplaatst hij die regel naar blad3.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim iSchrijfRij As Long
    iSchrijfRij = Sheets("verzamelblad").Range("A" & Rows.Count).End(xlUp).Row + 1
    Selection.EntireRow.Copy
    Sheets("verzamelblad").Rows(iSchrijfRij).PasteSpecial xlValues
Application.CutCopyMode = False
End Sub
 
Als je gewoon dubbelklikt in de eerste cel v/d te kopieëren rij werkt de code van snb nochtans perfect
 
Warme bakkertje,

Als je gewoon dubbelklikt in de eerste cel v/d te kopieëren rij werkt de code van snb nochtans perfect
Wat er bij mij dan misgaat weet ik niet maar bij mij pakt hij de rij er onder.
Hij zet het trouwens ook op het zelfde blad terug maar dat kon ik wijzigen.
 
Laatst bewerkt:
Ik heb de code van SNB geprobeerd maar het is me nog niet gelukt deze werkend te krijgen. Die is voor mij nog te moeilijk om 'm door te hebben.
Bovendien komt die (volgens mij) in het bestand te staan dat iedere dag opnieuw gegenereerd wordt en dan moet ik 'm daar elke keer in plakken. Of kun je deze ook in een persoonlijke map plaatsen zodat hij automatisch geladen wordt bij het openen van een 'bron'bestand?

Ik krijg de melding: Fout 9 tijdens uitvoering
Het subscript valt buiten het bereik

:confused:
 
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  usedrange.rows(target.row).copy workbooks("bestand2.xls").sheets("transport").cells(rows.count,1).end(xlup).offset(1)
End Sub

1. bepaal het gebied met gegevens: usedrange
2. neem daaruit de rij : .rows
3. die overeenkomt met de rij waarin de dubbelklik plaatsvindt: target.row
4. kopieer deze rij uit het gebied met gegevens: .copy

5. naar het andere bestand : Workbooks("bestand2.xls")
6. in werkblad 'transport' : .sheets("transport")
7. vanaf de laatste cel in kolom A : .cells(Rows.count,1)
8. tot de eerste gevulde cel van onderaf in kolom A : .end(xlup)
9. en 1 regel lager, want dat is de eerste lege cel van onderaf van kolom A: .offset(1)

En dat allemaal in 1 regel.
Pas de namen van het werkboek 'bestand2.xls' en het werkblad 'transport' aan aan je eigen situatie.
 
Laatst bewerkt:
snb,

Hartelijk dank voor de uitleg van de code.
 
Jippie :D Ik heb de code van SNB werkend. In ieder geval thuis met 2 test bestanden.
Zelf zat ik heel moeilijk te denken en SNB lost het op met 1 regel. :thumb: :love:
Voor mij ongelooflijk
SNB bedankt en respect.

Nu moet op m'n werk ook nog lukken...
Zal nog een puzzel worden met verschillende shares, directory's, mappen en xlxs bestanden.

Mijn vraag blijft staan of dit script automatisch in elke bestand dat ik open uitgevoerd kan worden? en hoe dan.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan