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

Voorkomen gebruik Activate

Status
Niet open voor verdere reacties.

Symphysodon

Gebruiker
Lid geworden
14 dec 2012
Berichten
468
Ik heb een beginnersvraag.

In een stuk code wil ik de format van een bereik op een bepaald tabblad instellen, zonder eerst naar dat tabblad te gaan. Het programma is op dat moment dus op een ander tabblad.

Onderstaande code werkt alleen als ik eerst het tabblad Voorbeeld activeer.

Hoe kan ik dit nu netjes oplossen?

Code:
Set tbl = Sheets("Voorbeeld").[a3].CurrentRegion
tbl.Offset(0, 1).Resize(tbl.Rows.Count, tbl.Columns.Count - 1).Select
With Selection
    .HorizontalAlignment = xlCenter
End With
With Selection.Font
    .Name = "Arial"
    .Size = 8
    .Bold = False
End With

Mvg
Marco
 
Code:
with Sheets("Voorbeeld").cells(1).CurrentRegion
  .HorizontalAlignment = -4108
  With .Font
    .Name = "Arial"
    .Size = 8
    .Bold = False
  End With
Edn with
 
Laatst bewerkt:
De selectie is niet helemaal die ik bedoelde maar mijn vraag is wel beantwoord.
Code:
Set tbl = Sheets("Voorbeeld").[a3].CurrentRegion
With tbl.Offset(0, 1).Resize(tbl.Rows.Count, tbl.CurrentRegion.Columns.Count - 1)
  .HorizontalAlignment = -4108
    With .Font
        .Name = "Arial"
        .Size = 8
        .Bold = False
    End With
End With
 
Maar je hebt er te weinig van opgestoken.
De variabele is overbodig.
 
De variabele wordt verder in de code nog gebruikt. Maar hoe zou ik het in dit geval dan zonder die variabele kunnen doen.
cells(1) in jou code is toch [a1]?
 
Ik ga ervan uit dat je in een werkblad altijd cel A1 gebruikt.
Toon in een voorbeeldbestand wat je wil.
 
Laatst bewerkt:
In de bijlage een voorbeeld.

Een tweede vraag zou nog kunnen zijn hoe ik vanuit een geresizde current region, de tweede rij kan bewerken om er een datumnotatie van te maken.
 

Bijlagen

De tweede is vraag is opgelost
Code:
Sub mformat()

Set tbl = Sheets("Voorbeeld").[a3].CurrentRegion
With tbl.Offset(0, 1).Resize(tbl.Rows.Count, tbl.Columns.Count - 1)
      .HorizontalAlignment = -4108
      .Resize(1).Offset(1, 0).NumberFormat = "m/d/yyyy"
    With .Font
        .Name = "Arial"
        .Size = 8
        .Bold = False
    End With
End With


End Sub
 
Laatst bewerkt:
Verwijder eerst de lege rijen 1 en 2.

Dan is dit genoeg:

Code:
Sub M_snb()
    With Sheets("Voorbeeld").Cells(1).CurrentRegion
      .Rows(2).NumberFormat = "dd-mm-yyyy"
      .HorizontalAlignment = -4108
      With .Font
        .Name = "Arial"
        .Size = 8
        .Bold = False
      End With
    End With
End Sub
 
Laatst bewerkt:
Kan helaas niet de eerste regel is een titel regel met ander letterformat.

Bedankt voor de hulp.
 
Probeer eerst eens de code te begrijpen voordat je reageert !
En lees eens een boek VBA voor beginners van het begin tot het einde door.

Code:
Sub M_snb()
    With Sheets("Voorbeeld").Cells(1).CurrentRegion.offset(1)
      .Rows(1).NumberFormat = "dd-mm-yyyy"
      .HorizontalAlignment = -4108
      With .Font
        .Name = "Arial"
        .Size = 8
        .Bold = False
      End With
    End With
End Sub
 
Laatst bewerkt:
Dit doet het ook met de tabel startend vanaf cel A3:
Code:
Sub mformat()
    With Sheets("Voorbeeld").Range("a3").CurrentRegion
        .Rows(2).NumberFormat = "dd-mm-yyyy"
        With .Offset(0, 1).Resize(.Rows.Count, .Columns.Count - 1)
            .HorizontalAlignment = xlCenter
            With .Font
                .Name = "Arial"
                .Size = 8
                .Bold = False
            End With
        End With
    End With
End Sub
Lijkt overigens erg op snb's code, vind je ook niet :-)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan