Macro inkorten

Status
Niet open voor verdere reacties.

Ron001

Gebruiker
Lid geworden
4 dec 2017
Berichten
384
Hoe kort ik zoiets in tot een "normale" grootte?
Ik wil deze kolommen dus gaan verwijderen, maar heb voorlopig enkel "select" gedaan om te testen.

Code:
Sub opmaak()

ActiveWorkbook.Worksheets("Blad1").Range("A:A,D:D,H:H,J:J,K:K,L:L,M:M,P:P,Q:Q,R:R,S:S,T:T,U:U,V:V,W:W,X:X,Y:Y,Z:Z,AA:AA,AB:AB,AC:AC,AD:AD,AE:AE,AF:AF,AG:AG,AH:AH,AI:AI,AJ:AJ,AK:AK,AL:AL,AM:AM,AN:AN,AO:AO,AP:AP,AQ:AQ,AR:AR,AS:AS,AT:AT,AU:AU,AV:AV,AW:AW,AX:AX,AY:AY,AZ:AZ,BA:BA,BB:BB,BD:BD,BE:BE,BF:BF,BG:BG,BH:BH,BI:BI,BJ:BJ,BK:BK,BL:BL,BM:BM,BN:BN,BO:BO,BP:BP,BQ:BQ,BR:BR,BS:BS,BT:BT,BU:BU,BV:BV,BW:BW,BX:BX,BY:BY,BZ:BZ,CA:CA,CB:CB").Select
'Selection.Delete 'Shift:=xlToLeft


End Sub
 
Laatst bewerkt:
Je hebt het over het verwijderen van rijen en in je code gebruik je alleen kolommen.
Wat is het nu?
 
Moeten die gewoon verwijderd worden of zijn daar nog voorwaarden aan verbonden?
 
Ik wil daar nog van alles met doen (zou eigenlijk mijn vraag geweest zijn), maar ik wil eerst dit een beetje overzichtelijker...
Verwijderd...
 
Ok, maar zijn dat bijvoorbeeld lege kolommen?
 
Mits ik nergens heb over gekeken.
Code:
ActiveWorkbook.Worksheets("Blad1").Range("A:A,D:D,H:H,J:J,K:M,P:BB,BD:CB").Select
 
deze kolommen zijn gevuld...
Kolommen nogen verwijder worden...

@ gast0660

Werkt...Is inderdaad veel beter...
 
Is je probleem opgelost?
Ik zou ThisWorkbook gebruiken in plaats van ActiveWorkbook.
 
Jep, wil enkel alle overblijvende cellen nog horizontaal en verticaal in het midden centreren en alle overblijvende kolommen nog passend maken.
Heb inderdaad aangepast naar ThisWorkbook => veiliger :-) Bedankt!

Code:
With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
 
voila

Code:
Sub opmaak()

ThisWorkbook.Worksheets("Blad1").Range("A:A,D:D,H:H,J:J,K:O,R:BD,BF:CR").Select
With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Columns.AutoFit
'Selection.Delete 'Shift:=xlToLeft
End With
End Sub
 
Vermijdt select,is zelden nodig.
Code:
Sub dotch()
With Worksheets("Blad1").Range("A:A,D:D,H:H,J:J,K:O,R:BD,BF:CR")
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    .Columns.AutoFit
'.Delete 'Shift:=xlToLeft
End With
End Sub
Ik begrijp niet waarom je eerst alles nog gaat centreren en de kolommen passend maakt.
Je heb twee ranges nodig, een met de overblijvende kolommen, die je centreert en de kolommen passend maakt, en een range met de kolommen die verdwijnen die je gewoon delete.
 
Dus best eerst de .Delete in de macro en dan gaan centreren?
Maar zonder die select in jouw macro gebeurt er niets...
 
Laatst bewerkt:
Code:
Sub dotch()
With Worksheets("Blad1").Range("A:A,D:D,H:H,J:J,K:O,R:BD,BF:CR")
.Delete 'Shift:=xlToLeft
End With
With Worksheets("Blad1") 'of hier ook een range met de kolommen die moeten worden uitgelijnd als er ook kolommen niet moeten worden uitgelijnd.
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .Columns.AutoFit
End With
End Sub
 
Ik krijg fout 438 vanaf .HorizontalAlignment = xlCenter

Dus de aangeduide kolommen moet verwijderd worden en de overblijvende passend/verticaal centreren/horizontaal centreren...
 
Mijn fout, ik was iet te snel.:o
Code:
Sub dotch()
With Worksheets("Blad1").Range("A:A,D:D,H:H,J:J,K:O,R:BD,BF:CR")
.Delete 'Shift:=xlToLeft
End With
With Worksheets("Blad1")[COLOR="#FF0000"].Columns[/COLOR]
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .Columns.AutoFit
End With
End Sub
 
1 keer naar het blad verwijzen is ook wel voldoende
Code:
Sub dotch()
  With Sheets("Blad1")
    .Range("A:A,D:D,H:H,J:J,K:O,R:BD,BF:CR").Delete
    With .Columns
      .HorizontalAlignment = xlCenter
      .VerticalAlignment = xlCenter
      .AutoFit
    End With
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan