Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spaltenbreite per VBA - ohne Buchstaben

Forumthread: Spaltenbreite per VBA - ohne Buchstaben

Spaltenbreite per VBA - ohne Buchstaben
Mischa
Hallo,
habe eine VB6.0 Anwendung und möchte in einer erstellten Excel-Mappe die Spaltenbreite ändern.
Ich will aber nicht Columns("B:Z") verwenden, sondern Zahlen, da die Spaltenanzahl unterschiedlich gross ist und ich das nicht umständlich in Buchstaben umwandeln möchte.
Wer hat einen Tip?
Danke, Mischa Richter
Anzeige
AW: Spaltenbreite per VBA - ohne Buchstaben
21.05.2012 22:51:27
Josef

Hallo Mischa,
so?
Sub mischa()
  Dim lngFirstColum As Long, lngLastColum As Long
  
  lngFirstColum = 2
  lngLastColum = 8
  
  Range(Cells(1, lngFirstColum), Cells(1, lngLastColum)).EntireColumn.ColumnWidth = 25
End Sub



« Gruß Sepp »

Anzeige
AW: Spaltenbreite per VBA - ohne Buchstaben
21.05.2012 23:02:33
Mischa
nein, geht leider nicht.
Code:
Dim ExlApp As Excel.Application
Set ExlApp = New Excel.Application
...
GesamtspaltenZähler=170
ExlApp.Range(Cells(1, 2), Cells(1, GesamtspaltenZähler)).EntireColumn.ColumnWidth = 0.5
Fehlermeldung:
Die Methode Range für das Objekt _Application ist fehlgeschlagen.
Woran liegt das nur ?
Mischa
Anzeige
AW: Spaltenbreite per VBA - ohne Buchstaben
21.05.2012 23:10:24
Josef

Hallo Mischa,
"Excel gut - VBA gut"?
Excel hat keine Spalten - eine Tabelle in einer Mappe hat Spalten deren breite man wiederum einstellen kann!
Aber wozu brauchst du eine neue Excel-Instanz?
Sub mischa()
  Dim lngFirstColum As Long, lngLastColum As Long
  Dim ExlApp As Excel.Application, objWB As Workbook
  
  Set ExlApp = New Excel.Application
  
  ExlApp.Visible = True
  
  Set objWB = ExlApp.Workbooks.Add
  
  lngFirstColum = 2
  lngLastColum = 8
  
  With objWB.Sheets(1)
    .Range(.Cells(1, lngFirstColum), .Cells(1, lngLastColum)).ColumnWidth = 25
  End With
  
  Set objWB = Nothing
  Set ExlApp = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: @Sepp
21.05.2012 23:15:16
hary
Hallo Sepp
wie ich es verstehe hat Mischa sich ein Programm mit VB6 erstellt, daraus oeffnet er eine Excelinstanz.
gruss hary
ja gut, hab die Lösung ja gepostet! o.T.
21.05.2012 23:19:13
Josef
« Gruß Sepp »

Anzeige
AW: ja gut, hab die Lösung ja gepostet! o.T.
21.05.2012 23:27:00
Mischa
Oh mann, ist spät geworden heute - habe jetzt mal die Syntax-Fehler korrigiert, Punkte rein - und schon gehts.
With wkb.Sheets(1)
.Range(.Cells(1, 2), .Cells(1, GesamtspaltenZähler)).EntireColumn.ColumnWidth = 0.5
End With
!!! Danke für alle Antworten !!!
MischaRichter
@Sepp: Historische Anmerkung
22.05.2012 00:05:10
Uduuh
Hallo Sepp,
"Excel gut - VBA gut"?
in den Frühzeiten des Forums, kurz nachdem sich das Eis aus Mitteleuropa zurückgezogen hatte, war Mischa ein eifriger und kompetenter Antworter. Ich habe ihn und einige andere anlässlich Hans' 60stem kennen und schätzen gelernt. Unter anderem hat er das Forumtreffen 2006 in Ziegenrück (am Ende der Welt) ausgerichtet. Beate und WF werden sich immer (gerne?) an die Fahrt (13:00 ab DU Hbf-an 03:00 Hotel Ziegenrück, wo man noch immer ein Bier bekam) erinnern.
Gruß aus’m Pott
Udo

Anzeige
AW: Spaltenbreite per VBA - ohne Buchstaben
21.05.2012 23:02:55
hary
Hallo Sepp
Hab es so geloest. Ist dieser nachteilig gegenueber Deinem Code?

Dim erste As Long, letzte As Long
erste = 2
letzte = 4
Range(Columns(erste), Columns(letzte)).ColumnWidth = 15

gruss hary
AW: Spaltenbreite per VBA - ohne Buchstaben
21.05.2012 23:05:16
Mischa
Hallo,
da ich "von außen", also mit VB6.0 an der excel-Mappe arbeite geht RANGE bisher nicht korrekt.
MischaRichter
Anzeige
AW: Spaltenbreite per VBA - ohne Buchstaben
21.05.2012 23:11:38
hary
Hallo Mischa
hab kein VB6 auf diesem Com.
Probier mal mit zuweisung auf das aktive Blatt:

ActiveSheet.Range(Cells(1, 2), Cells(1, GesamtspaltenZähler)).EntireColumn.ColumnWidth = 0.5

gruss hary
AW: Spaltenbreite per VBA - ohne Buchstaben
21.05.2012 23:17:23
Mischa
:( geht leider nicht - anwendungs- oder Objektorientierter Fehler bei:
Dim wkb As New Excel.Workbook
Set wkb = ExlApp.Workbooks.Add
...
wkb.ActiveSheet.Range(Cells(1, 2), Cells(1, GesamtspaltenZähler)).EntireColumn.ColumnWidth = 0.5
MischaRichter
Anzeige
OT: Du lebst noch?
21.05.2012 23:21:00
Uduuh
Hallo Mischa,
lange nicht gesehen/ gelesen
cu @ philipp in Mühldorf?
Gruß aus’m Pott
Udo

Auf so etwas antwortet er nicht, ...
22.05.2012 08:23:05
Luc:-?
…Udo,
hab ich auch schon mal versucht als er sich vor Wochen/Monaten(?) schon mal gemeldet hatte. Wahrscheinl sieht's seine Frau immer noch nicht gern, wenn er Zeit im Forum verbringt. ;-)
Oder er ist's gar nicht!
Gruß Luc :-?
Anzeige
falscher Mischa
22.05.2012 22:49:02
Uduuh
Hallo,
hhmm, du scheinst ihn ja näher zu kennen. Aber auch mit 3 (oder auch mehr?) Blagen am Hals sollte man sich doch Freiheiten gönnen. Es sei denn, Musik interessiert ihn (und strapaziert die Beziehung) mehr. ;-)
Gruß aus’m Pott
Udo

Näher kennen? Nee, kann mich nur an ...
23.05.2012 16:06:17
Luc:-?
…das ehem OT-Forum hier erinnern, Udo,
da hatte sich wohl 2005 bzw 6 mal seine Frau an uns mit einer Art „Beschwerde“ gewandt. Danach wurden seine Auftritte hier immer seltener bis sie für Jahre ganz versiegten. ;-)
Gruß Luc :-?
Anzeige
@uduu - Exceltreffen und meine Frau
23.05.2012 17:39:17
Mischa
Hallo Exceltreffenfreunde -
ich war bei Hans Herber dabei (200?), dann in Pforzheim, Heidelberg, Ziegenrück (!) und im Spreewald. Dann kamen 3 Kinder, eine Mittelalterband, eine Rockband und meine Frau dazu - musste also mal kürzer treten. Jetzt sind die Kinder pflegeleichter, habe mich von der Mittelalterband getrennt und nicht mehr den nervigen Job als CIO, sondern lebe von Hartz4 (als Teamleiter im Jobcenter :)
Wenn ich es hinbekomme bin ich 2012 beim Exceltreffen wieder an Bord - und da ich grad wieder mit VB6/ADO/Excel-Mappen anfange bin ich auch sicher wieder öfters -als Frager- hier im Herber-Forum.
Als Antworter sicher erst mal nur so lange, wie ich auf die antworten meiner Fragen warte.
Bis bald mal. Mischa - www.jiny-rockt.de
Anzeige
AW: Spaltenbreite per VBA - ohne Buchstaben
22.05.2012 02:29:25
Reinhard
Hallo Mischa,
falsch referenziert?
Teste mal:
Private Sub Command1_Click()
Dim wkb As New Excel.Workbook, ExlApp
Set ExlApp = New Excel.Application
Set wkb = ExlApp.Workbooks.Add
With wkb.ActiveSheet
.Range(.Cells(1, 2), .Cells(1, 10)).EntireColumn.ColumnWidth = 0.5
End With
End Sub

Gruß
Reinhard
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Spaltenbreite in Excel per VBA ändern


Schritt-für-Schritt-Anleitung

Um die Spaltenbreite in Excel per VBA festzulegen, ohne Buchstaben zu verwenden, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen und wähle Modul.

  3. Füge den folgenden Code ein:

    Sub SetColumnWidth()
       Dim lngFirstColumn As Long, lngLastColumn As Long
       lngFirstColumn = 2 ' Startspalte
       lngLastColumn = 8 ' Endspalte
    
       ' Spaltenbreite für den Bereich festlegen
       Range(Cells(1, lngFirstColumn), Cells(1, lngLastColumn)).EntireColumn.ColumnWidth = 25
    End Sub
  4. Führe das Makro aus: Klicke auf Ausführen oder drücke F5.

Diese Methode verwendet die vba entirecolumn Funktion, um die Breite von Spalten festzulegen, ohne Buchstaben zu verwenden.


Häufige Fehler und Lösungen

  1. Fehlermeldung: "Die Methode Range für das Objekt _Application ist fehlgeschlagen"

    • Lösung: Stelle sicher, dass du die richtigen Objektreferenzen verwendest. Verwende With-Anweisungen, um auf das aktive Blatt zuzugreifen:
    With wkb.Sheets(1)
       .Range(.Cells(1, lngFirstColumn), .Cells(1, lngLastColumn)).ColumnWidth = 25
    End With
  2. Anwendungs- oder Objektfehler bei der Spaltenbreitenanpassung

    • Lösung: Achte darauf, dass du die Excel-Anwendung korrekt initialisiert hast und auf das aktive Blatt zugreifst.

Alternative Methoden

Eine alternative Methode zur Anpassung der Spaltenbreite ist die direkte Verwendung von Columns:

Sub AlternativeSetColumnWidth()
    Dim erste As Long, letzte As Long
    erste = 2
    letzte = 4
    Columns(erste & ":" & letzte).ColumnWidth = 15
End Sub

Diese Methode ist einfach und verwendet die vba excel column width Funktion, um die Breite der Spalten festzulegen.


Praktische Beispiele

Hier sind ein paar praktische Beispiele zur Anpassung der Spaltenbreite:

  1. Anpassung der Breite für mehrere Spalten:

    Sub AdjustMultipleColumns()
       Dim totalColumns As Long
       totalColumns = 170
       Columns(2 & ":" & totalColumns).ColumnWidth = 0.5
    End Sub
  2. Verwendung einer Schleife zur Anpassung der Spaltenbreite:

    Sub LoopThroughColumns()
       Dim i As Long
       For i = 2 To 10
           Columns(i).ColumnWidth = 5
       Next i
    End Sub

Tipps für Profis

  • Beachte die Unterschiede zwischen Range und Columns: Range ermöglicht dir die gezielte Auswahl, während Columns allgemein auf die Spalten zugreift.
  • Verwende Option Explicit: Dies hilft, Schreibfehler in Variablennamen zu vermeiden und verbessert die Lesbarkeit deines Codes.
  • Teste deinen Code regelmäßig: Stelle sicher, dass die excel vba spaltenbreite Anpassungen wie gewünscht funktionieren, insbesondere bei verschiedenen Excel-Versionen.

FAQ: Häufige Fragen

1. Kann ich die Spaltenbreite für eine gesamte Tabelle anpassen? Ja, du kannst die Spaltenbreite für die gesamte Tabelle anpassen, indem du Columns ohne spezifische Indizes verwendest:

Columns.ColumnWidth = 20

2. Wie kann ich die Breite dynamisch an den Inhalt anpassen? Verwende die AutoFit Methode:

Columns("A:Z").AutoFit

3. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, solange VBA unterstützt wird. Achte jedoch darauf, dass bestimmte Funktionen je nach Version variieren können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige