Avatar billede 171257 Nybegynder
07. marts 2002 - 10:00 Der er 4 kommentarer og
1 løsning

Makro til deling af data

Data før:

Navn    Adr    PostnrBy
Navn1    Adr1    xxxx
Navn2    Adr2    xxxx
Navn3    Adr3    xxxx
Navn4    Adr4    xxxx
Navn5    Adr5    xxxx
Navn6    Adr6    xxxx
Navn7    Adr7    xxxx
Navn8    Adr8    xxxx
Navn9    Adr9    xxxx
Navn10    Adr10    xxxx
Navn11    Adr11    xxxx

Data efter:

Navn  Adr  PostnrBy    Navn2    Adr2    PostnrBy2
Navn1  Adr1  xxxx    Navn7    Adr7    xxxx
Navn2  Adr2  xxxx    Navn8    Adr8    xxxx
Navn3  Adr3  xxxx    Navn9    Adr9    xxxx
Navn4  Adr4  xxxx    Navn10    Adr10    xxxx
Navn5  Adr5  xxxx    Navn11    Adr11    xxxx
Navn6  Adr6  xxxx           

Hvis der er et ulige antal rækker skal "hullet" være ovre ved "Navn2".
Alternativt kunne man fylde ud med X'er så antallet bliver lige?
Makroen skal selv finde ud af hvor mange rækker og
kolonner der er.

Avatar billede askims Nybegynder
07. marts 2002 - 14:47 #1
Hej

Det kan du. Makroen skal gå til sidste række og så skal du i en variabel definere nummeret på slutrækken, dette trækker du fra start rækken og dividere med 2. Så har du slutrækken og de antal rækker du skal have over. Af dette kan du definere området du vil flytte, simpelt og ligetil!

Askims
Avatar billede askims Nybegynder
07. marts 2002 - 14:52 #2
Her er lidt makroer til inspiration.

Markér et område, der ikke er defineret på forhånd, men området starter i celle A4:

Sub Omr
Range("A4").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
End sub

End-funktionen kan bruges med xlToLeft, xlToRight, xlUp eller xlDown

ASKIMS
Avatar billede 171257 Nybegynder
07. marts 2002 - 14:57 #3
Hej Askims

Det lyder meget rigtigt. Nu er jeg ikke nogen haj til at programmere
sååååå vis det lige på skrift (en makro)  :-)
Avatar billede bak Seniormester
07. marts 2002 - 15:11 #4
Test lige den her:
Sub del()
x = Application.WorksheetFunction.CountA(Range("A:A"))
y = Application.WorksheetFunction.CountA(Range("1:1"))
If WorksheetFunction.Odd(Int(x / 2)) Then z = Int((x) / 2) + 1 Else z = Int(x / 2)
Range(Cells(z + 1, 1), Cells(x + 1, y)).Cut
Cells(2, y + 1).Select
ActiveSheet.Paste
Range(Cells(1, 1), Cells(1, y)).Copy
Cells(1, y + 1).Select
ActiveSheet.Paste
End Sub
Avatar billede 171257 Nybegynder
07. marts 2002 - 15:53 #5
Hej bak

Det ser ud til at virke perfekt  :-)
Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester