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

Naar nieuw bestand kopieren

Status
Niet open voor verdere reacties.

stefano

Gebruiker
Lid geworden
22 mei 2004
Berichten
865
De inhoud van een bestand wil ik onderaan een ander bestand 'bijplakken'.

Ik heb via de hulplijnen hier volgende code in elkaar geknutseld.

Code:
Sub ubn_overzetten()

    Workbooks("file2.xlsm").Sheets("blad1").UsedRange.[COLOR="#FF0000"]Offset(2)[/COLOR].Value = Workbooks("file1.xlsm").Sheets("blad1").UsedRange.Offset(3).Value

End Sub

Bovenstaand werkt mooi maar overschrijft de gegevens telkens terwijl ik ze net mooi eronder wil gaan plakken. De Offset(2) in de code moet ik dus gaan vervangen door een verwijzing naar de laatste rij+1 zodat ik de nieuwe gegevens er onder aan kan plakken.

kan iemand me helpen?

dank alvast!
 
Code:
Sub VenA()
  ar = Workbooks("file1.xlsm").Sheets("blad1").UsedRange.Offset(3).Value
  With Workbooks("file2.xlsm").Sheets("blad1")
    .Cells(.UsedRange.Rows.Count + 1, 1).Resize(UBound(ar), UBound(ar, 2)) = ar
  End With
End Sub
 
De code werkt goed. Ik was wel 'vergeten' dat er nog een verborgen kolom A aanwezig is. Vandaar dat de used range op een verkeerd gebied slaat. Het zouden dus enkel die rijen mogen zijn die niet blanco zijn in kolom B. Sorry voor de onduidelijkheid. Ik heb twee bestanden toegevoegd met een knop voor beide macro's.

Dat maakt het natuurlijk nog ingewikkelder :(
 

Bijlagen

  • file2.xlsm
    27,3 KB · Weergaven: 18
  • file1.xlsm
    21,7 KB · Weergaven: 18
Had je net zo goed gelijk de bestanden kunnen plaatsen. Doe eerst maar eens wat zelfstudie zo moeilijk is het allemaal niet en er zijn voldoende voorbeelden te vinden.
 
Ik vermoed dat ik het in de code en de UsedRange.Offset moet gaan zoeken. In plaats van het ganse gebied, de used range, te gebruiken moet ik enkel het (variabel!) gebied selecteren zonder de gegevens in kolm A. Maar hoe selecteer ik dat gebied of de rijen waar in de tweede kolom geen inhoud staat, dat is iets wat ik niet weet.

Code:
ar = Workbooks("file1.xlsm").Sheets("blad1").UsedRange.Offset(3).Value

Maar als jij niet kan helpen dan wacht ik wel verder af hoor.

toch bedankt alvast !
 
Gebruik een echte tabel en vul nooit meer in dan noodzakelijk is. Kan je gewoon de databodyrange 'kopiëren'

En verder zomaar wat code wat echt helemaal nergens te vinden is.

Code:
Sub VenA()
  MsgBox Blad1.UsedRange.Offset(7, 1).Address
End Sub

Code:
Sub VenA()
  MsgBox Blad1.Cells(7, 2).CurrentRegion.Offset(1, 1).Address
End Sub

Ook nog met een paar variabelen dan kan je goed volgen wat er gebeurt.
Code:
Sub VenA()
  With Blad1
    lr = .Cells(Rows.Count, 8).End(xlUp).Row
    lc = .Cells(7, Columns.Count).End(xlToLeft).Column
    MsgBox Range("B8:B" & lr).Resize(, lc - 1).Address
  End With
End Sub

En zo zijn er nog tig te verzinnen.
 
Dank je wel ! Hier ga ik op verder werken.

Je schrijft werken met een echte tabel. Ik wil dat ook doen maar oorspronkelijk krijg ik een csv-bestand aangeboden uit een extern programmaen die gegevens zet ik met formules om in een ander bestand.

Code:
=ALS.FOUT(HORIZ.ZOEKEN(J$1&"*";[AB_TA_1.xls]blad1!$A$1:$IV$2000;$A8;ONWAAR);"")

Wellicht is het die laatste "" die er voor zorgt dat de cel niet leeg is niettegenstaande er een blanco cel getoond wordt.

ik heb een aangepast voorbeeld bijgevoegd (gaat wel over een paar 100 rijen normaal). Eerst bestand ....1.xls openen, dit is het geëxporteerde bestand uit het externe programma. ....2.xlsm is mijn bestand met formules waarin ik alles netjes op een rij zet.
 

Bijlagen

  • AB_TA_1.xls
    50 KB · Weergaven: 13
  • AB_TA_2.xlsm
    104,8 KB · Weergaven: 20
Dit is het dan geworden, hopelijk een beetje aanvaardbaar :eek:

Code:
Sub ubn_overzetten()

Dim ar, lr As Integer

Workbooks.Open ("c:\data\sap\file2.xlsm")

ar = Workbooks("file1.xlsm").Sheets("blad1").Cells(Rows.Count, 8).End(xlUp).Row
lr = Workbooks("file2.xlsm").Sheets("UBN").Cells(Rows.Count, 9).End(xlUp).Row

Workbooks("file1.xlsm").Worksheets("blad1").Range("8:" & ar).Copy _
    Workbooks("file2.xlsm").Worksheets("UBN").Range(lr + 1 & ":" & lr + 1)

Workbooks("file1.xlsm").Close False
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan