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

Opmaak tabel mbv macro

Status
Niet open voor verdere reacties.

Jap3600

Gebruiker
Lid geworden
19 mei 2015
Berichten
91
Hallo allemaal

Ik heb in een bepaald bestand een tabelletje zitten. Deze tabel verschuift regelmatig (met name van regelnummer).
Ook is de tabel is variabel in aantal kolommen.

Nu is het mijn bedoeling dat alleen de tabel netjes wordt omlijnt. Hiervoor ik heb ik al een goed werkende code zoals hieronder weergegeven.
Code:
Sub Opmaak_TABEL()

 
 'Onderstaande is om een tabel grijs te omlijnen :
With ActiveWorkbook.ActiveSheet.Range("Tbl_parameters")
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:="=ALS(J$9<>"""";1;0)"
        .FormatConditions(1).Borders.LineStyle = xlContinuous
        .FormatConditions(1).Borders.Color = RGB(128, 128, 128)
End With
   
 
End Sub



Zoals gezegd is de cel J$9 varialbel
Daarom heb ik al meerdere pogingen gedaan om deze cel ook te benoemen "StartPM" en deze te verwerken in de code maar daar gaat het mis.
Hieronder een van mijn probeersels waardoor helaas de gehele tabel omlijnt wordt.
Code:
Sub Opmaak_TABEL_Variabel()

' ====================================================================================
'  Omdat cel J$9 variabel is zou ik de macro willen aanpassen aan deze variabele
'  Hievoor heb de eerste cel van de tabel benoemd als "StartPM"
'  Ik krijg het alleen niet werkend............
' ====================================================================================
 
 'Onderstaande is om een tabel grijs te omlijnen :
With ActiveWorkbook.ActiveSheet.Range("Tbl_parameters")
        .FormatConditions.Delete
        '.FormatConditions.Add Type:=xlExpression, Formula1:="=ALS(J$9<>"""";1;0)"
        .FormatConditions.Add Type:=xlExpression, Formula1:="=ALS(ADRES(RIJ(StartPM);KOLOM(StartPM);2)<>"""";1;0)"
        .FormatConditions(1).Borders.LineStyle = xlContinuous
        .FormatConditions(1).Borders.Color = RGB(128, 128, 128)
End With

End Sub

Mogelijk dat iemand me verder kan helpen om deze goed werkend te krijgen.
Zie ook bestandje in bijlage.
 

Bijlagen

  • Voorwaardelijke opmaak kolommen.xlsm
    22,8 KB · Weergaven: 21
Wat is je probleem? Als ik de tabel groter maak (door Omschr. 5 toe te voegen bijvoorbeeld) wordt de opmaak automatisch aangepast. Geldt ook voor het toevoegen van rijen. Ik snap dus niet wat je nu wilt.
 
@AccessGuru,
het is een gedefinieerde naam "tabel", die geen echte tabel is, dus je vlieger gaat niet op
 
Code:
Sub Opmaak_TABEL()


     'Onderstaande is om een tabel grijs te omlijnen :
     With ActiveWorkbook.ActiveSheet.Range("Tbl_parameters")
          .FormatConditions.Delete
          .FormatConditions.Add Type:=xlExpression, Formula1:="=ALS(" & [COLOR="#FF0000"].Cells(1).Address(1, 0, 1)[/COLOR] & "<>"""";1;0)"     '1e cel, rij absoluut, kolom relatief
          .FormatConditions(1).Borders.LineStyle = xlContinuous
          .FormatConditions(1).Borders.Color = RGB(128, 128, 128)
     End With


End Sub
 
Laatst bewerkt:
het is een gedefinieerde naam "tabel", die geen echte tabel is, dus je vlieger gaat niet op
Snap niet waar je op doelt; het programma werkt zoals TS bedoelt, qua opmaak. Er wordt niet gerept over problemen met de 'tabel'. Die inderdaad niet slim gekozen is. En laten we dan nog maar niet beginnen over het gebruik van samengevoegde cellen.... Het bestand ís al zo gammel, en dan ook nog eens samengevoegde cellen gebruiken :).
 
Is wel erg negatief, slechte dag vandaag?
Aangaande de opmerking in #2 heeft Cow18 gewoon gelijk.
 
Beste allemaal

Als eerste bedankt voor de reacties.

De oplossing in #4 welke cow18 heeft aangedragen doet excact wat ik voor ogen had.
Dus heel erg bedankt hiervoor @cow18

@AccessGuru: Ik heb inderdaad een naam "tabel" gekozen wat mogelijk verwarrend heeft gewerkt. De samengevoegde cellen hebben totaal niets te maken met het bestand of mijn vraag.
Wil natuurlijk altijd bijleren en denk dat deze site daar een uitstekende uitvalsbasis voor is. Laten we het dan ook allemaal netjes en vriendelijk houden naar elkaar.
 
De samengevoegde cellen hebben totaal niets te maken met het bestand of mijn vraag.
Kan zijn, maar desalniettemin: als ik er niets van zeg, doet blijkbaar niemand het. En daar word jij ook niet wijzer van. Als je te weinig ruimte hebt voor je tekst, maak dan één kolom (waar dus per cel alles in past breder. Dat werkt voor het invullen ook veel beter. En als je een invoertabel de naam "Database" geeft, groeit die automatisch met je bereik mee. Heb je daar ook geen omkijken meer naar. Althans: dat was vroeger zo. Je kunt de invoertabel natuurlijk ook omzetten naar een échte tabel, en dan ben je ook van een hoop problemen af.
 
Kan zijn, maar ............

Standaard vermijd ik altijd om samengevoegde cellen te gebruiken. Zorgt vaak alleen maar voor ellende maar soms ontkom ik er niet aan.
Wat me wel interessant lijkt is het aanpassen van de naam "Database" welke dan automatisch meegroeit. Helaas is het zo dat in mijn voorbeeld de database aaneengesloten kolommen zijn welke gevuld zijn met formules. Hierdoor zijn ze soms leeg en soms gevuld. Het is eigenlijk een soort uitvoerblad waar verder niet veel mee gewerkt wordt. Met de aangedragen oplossing heb ik dat weten te omzeilen.

Toch nogmaals allemaal bedankt voor jullie inbreng.
 
Lees hoofdstuk 5 van je 'VBA voor beginners' boek nog eens rustig door.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan