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

Macro regels kopiëren naar tabblad en nieuwe regel

Status
Niet open voor verdere reacties.

GllM

Gebruiker
Lid geworden
26 mrt 2020
Berichten
7
Hallo,

Ik heb een adressenbestand dat in een nieuw format moet. Hiervoor heb ik het bijgevoegde Excel bestaand gemaakt. Nu moet de nieuwe opmaak vanuit tabblad MACRO met een macro gekopieerd worden naar het tabblad CSG ADRESSEN BESTAND. Als ik dat nu doe kopieert deze steeds op dezelfde plaats en over de reeds gekopieerd tekst. De macro moet dus automatisch een nieuwe regel aanmaken zodat de volgende adressen onderaan komen.

Ik hoop dat bovenstaande duidelijk is en dat iemand mij kan helpen.

Alvast bedankt.
 

Bijlagen

  • Voorbeeld.xls
    71,5 KB · Weergaven: 18
zo?

Code:
Sub SjonR()
With Sheets("CSG ADRESSEN BESTAND")
    LR1 = .Range("A" & Rows.Count).End(xlUp).Row + 1
    LR2 = Range("B" & Rows.Count).End(xlUp).Row - 20
    .Cells(LR1, 1).Resize(LR2, 11).Value = Cells(21, 2).Resize(LR2, 11).Value
End With
End Sub

STARTEN VANUIT BLAD MACRO
 
Laatst bewerkt:
Code:
Sub Doorkopieren()
   For Each c In Sheets("macro").Range("B21:B34").Cells
      If Len(c.Value) > 0 Then
         Sheets("csg Adressen bestand").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 11).Value = c.Resize(, 11).Value
      End If
   Next
End Sub
 
Ik mis een gedeelte van de code. Staat er in de tab 'CSG - BEDRIJF' altijd maar 1 bedrijf? Hoe komen de gegevens in de tab 'MACRO'? Werk je nog met deze stokoude versie van Excel? Het opsplitsen van data naar iets in een tabelvorm is niet zo moeilijk maar dan is het wel handig om te weten hoe het werkelijk in elkaar steekt.

Zo gaat het in 1 keer.
Code:
Sub VenA()
  ar = Sheets("CSG - BEDRIJF").UsedRange
  ReDim ar1(10, 0)
  For j = 1 To UBound(ar)
    If ar(j, 1) = "Contacten:" Then
      x = Array(ar(j - 1, 11), ar(j - 2, 11), ar(j - 2, 1), ar(j - 2, 5), ar(j - 2, 6), "land")
     Else
      If ar(j, 11) = "" And ar(j, 1) <> "" Then
        ar1(0, t) = x(0)
        ar1(1, t) = x(1)
        ar1(2, t) = x(2)
        ar1(3, t) = ar(j, 1)
        ar1(4, t) = ar(j, 4)
        ar1(5, t) = x(3)
        ar1(6, t) = x(4)
        ar1(7, t) = x(5)
        ar1(8, t) = ar(j, 6)
        ar1(9, t) = "tel2"
        ar1(10, t) = ar(j, 9)
        t = t + 1
        ReDim Preserve ar1(10, t)
      End If
    End If
  Next j
  Sheets("CSG ADRESSEN BESTAND").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(t, 11) = Application.Transpose(ar1)
End Sub
 
Laatst bewerkt:
Beste VenA

Dank voor je reactie. Waarschijnlijk heb je gelijk en kan het makkelijker. Ik heb het voorbeeld bestand uitgebreid. Helaas kan ik het origineel niet sturen vanwege de AVG wetgeving. Het is een export file van een adressenbestand dat bestaat uit 20.000 regels waarbij we de opmaak niet kunnen aanpassen. Het idee is dus dat we de gewenst informatie handmatig selecteren vanuit het tabblad CSG-BEDRIJF en kopiëren naar het tabblad MACRO. Deze verdeelt de geselecteerde informatie over de juiste kolommen. Als dat is gebeurt moet alles naar het tabblad CSG ADRESSEN BESTAND.
Ik werk met de nieuwste Excel versie.

Verneem graag je advies of het anders kan.

Alvast bedankt.
 

Bijlagen

  • Voorbeeld (2).xls
    69,5 KB · Weergaven: 12
Heb je de code in #4 wel geprobeerd? Staat namelijk niet in jouw bestand en doet precies het gevraagde zonder tussenkomt van een extra blad.
 
Yes, naar aanleiding van je tweede reactie heb ik de macro getest en deze werkt perfect.

Heel erg bedankt VenA!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan