Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Spaltenbreite mit Code einstellen.
12.12.2012 20:05:58
Golem
Hallo Excel-Fachleute.
Ich möchte mit einen Code die Spaltenbreite z.B. der Spalten S:NH gleich einstellen.
Gefunden habe ich folgenden Code:
Sub SpaltenZeilenEinstellen()
Sheets("Tabelle1").Activate
Range("S:NH").EntireColumn.ColumnWidth = 15
End Sub
Aber ich würde gerne mit einen SpinButton ( oder ähnlich ) diesen Code ausführen.
Und zwar so, wenn z.B. ein Wert in einer Zelle gleich 1, dann sollen die Spalten die Breite
15 einnehmen. Wenn ein Wert in der gleichen Zelle gleich 2, dann sollen die Spalten die
Breite 0,25 einnehmen.
Dadurch kann ich dann die Spaltenbreite mehrerer Spalten, für z.B. Formeleingabe,
auf eine Eingabebreite von z.B. 15 einstellen und danach auf die Arbeitsbreite von 0,25.
Für evtl. Tipps oder Anregungen schon mal besten Dank!
Golem

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenbreite mit Code einstellen.
12.12.2012 20:58:10
Matze,Matthias
Hallo Golem, (Realname?)
Wenn deine Spalten überschriften haben, könntest du mit
Range("S:NH").EntireColumn.Columns.Width = AutoFit
die Spalten anpassen,.... solltest du das nicht wollen, gibt es die Möglichkeit mal
den Makrorecoder zu benutzen.
Matze

AW: Spaltenbreite mit Code einstellen.
13.12.2012 17:48:53
Golem
Hallo Matze,
einen schönen Dank für Deine Antwort.
Ich bin dabei, mich in VBA einzuarbeiten. Oft fehlt mir aber, wegen zu geringer Kenntnisse,
das Grundgerüst, um darauf aufzubauen.
Deshalb benötige ich immer noch Tipps und Anregungen.
Der Name "Golem" ist eine Abkürzung von meinem Hausnamen Golembiewski.
Schon seit fast 60 Jahren nennen mich Freunde und Bekannte so ( Vorname ist Werner ).
Schöne Grüße
Golem

Anzeige
AW: Spaltenbreite mit Code einstellen.
13.12.2012 07:33:59
hary
Moin Golem
Nimm eine Umschaltflaeche aus ActivXSteuerelement.
Da den Code rein.
Private Sub ToggleButton1_Click()
With ToggleButton1
.Caption = IIf(.Value, "Schmal", "Breit")'Textanzeige im Button
Worksheets("Tabelle2").Range("S:NH").ColumnWidth = IIf(.Value, 15, 0.25)
End With
End Sub

gruss hary

AW: Spaltenbreite mit Code einstellen.
13.12.2012 17:55:48
Golem
Hallo Hary,
einen schönen Dank für Deine Antwort.
Dein Vorschlag entspricht genau meinen Vorstellungen.
Die Ausführung mit ToggleButton ist mir neu. Aber eine tolle Lösung.
Ich werde Deinen Code sofort verwenden.
Schöne Grüße
Golem

Anzeige
AW: Spaltenbreite mit Code einstellen.
14.12.2012 18:03:40
Golem
Hallo Excel-Fachleute,
wie kann ich beim folgenden Code Range("S:NH") durch Eingabezellen
ersetzen? Ich habe zwei Zellen in denen ich zB. in Zelle A5 S eingebe und z.B. in Zelle A6 NH
eingebe.
Private Sub ToggleButton1_Click()
With ToggleButton1
.Caption = IIf(.Value, "Schmal", "Breit")'Textanzeige im Button
Worksheets("Tabelle2").Range("S:NH").ColumnWidth = IIf(.Value, 15, 0.25)
End With
End Sub
Für evtl. Tipps oder Anregungen schon mal besten Dank!
Golem

AW: Spaltenbreite mit Code einstellen.
15.12.2012 07:55:59
Matze,Matthias
Hallo Golem,
in dem Blatt wo der Button ist, sind dann auch die Zellen A5 / A6 als Eingabezelle
Private Sub ToggleButton1_Click()
a = ActiveSheet.Cells(5, 1).Value
b = ActiveSheet.Cells(6, 1).Value
With ToggleButton1
.Caption = IIf(.Value, "Schmal", "Breit") 'Textanzeige im Button
Worksheets("Tabelle2").Range(a & ":" & b).ColumnWidth = IIf(.Value, 15, 0.25)
End With
End Sub
Nachteil hier, wenn kein Wert eingegen, dann Fehler

Anzeige
AW: Spaltenbreite mit Code einstellen.
15.12.2012 18:20:21
Golem
Hallo Matthias,
einen schönen Dank für Deinen Vorschlag.
Ich habe den Rangebereich nach Deinen Vorschlag variabel gemacht.
Nach dem Ausführen kommt die Fehlermeldung, Fehler beim Kompilieren: Variable nicht definiert.
Ist das der Fehler den Du angibst?
Schöne Grüße
Golem

AW: Spaltenbreite mit Code einstellen.
15.12.2012 19:39:56
Matze,Matthias
wenn du mit Option Explicit arbeitest verlangt man auch die Deklaration der Variablen,
somit muß noch folgende Zeile mit rein.
Private Sub ToggleButton1_Click()
Dim a as String, b as String
a = ActiveSheet.Cells(5, 1).Value
b = ActiveSheet.Cells(6, 1).Value
With ToggleButton1
.Caption = IIf(.Value, "Schmal", "Breit") 'Textanzeige im Button
Worksheets("Tabelle2").Range(a & ":" & b).ColumnWidth = IIf(.Value, 15, 0.25)
End With
End Sub

Anzeige
AW: Spaltenbreite mit Code einstellen.
15.12.2012 20:26:04
Matze,Matthias
Hi Golem,
hier noch eine kleine Musterdatei für dich,
acht mal auf die Spalten mit längeren Texteingaben.
Bei 15er Breite wird dieser nicht komplett angezeigt, in der Autobreite dann schon.
Viel Spaß damit
https://www.herber.de/bbs/user/83023.xlsm
Matze

AW: Spaltenbreite mit Code einstellen.
16.12.2012 14:44:14
Golem
Hallo Matze,
mit einer Deklaration der Variablen kannte ich mich nicht mit aus.
Aber jetzt funktioniert der Code einwandfrei.
Auch Deine Datei ist super. Du hast mir wieder geholfen und was wichtig ist,
ich lerne im Bereich VBA immer mehr dazu.
Einen schönen Dank für Deine Hilfe!
Golem

Anzeige
AW: Spaltenbreite mit Code einstellen.
13.12.2012 10:39:28
Henrik
Hallo Golem,
ganz habe ich nicht verstanden was du möchtest. Deshalb 2 Varianten.
Ich starte das ganze über Worksheet Change Ereignis. Natürlich kannst du dies auch anders lösen.

Option Explicit
'im Worksheet
Private Sub Worksheet_Change(ByVal Target As Range)
'wenn sich in Zelle "A1" der Wert ändert wird entsprechender Code aufgerufen
If Target.Row = 1 And Target.Column = 1 Then Call EINSgleichKLEIN
'f Target.Row = 1 And Target.Column = 1 Then Call FindeEINSinSpalten
End Sub
'als MODUL
'Variante 1. wenn A1=1 dann Spalten 15 breit sonst 0.25 breit
Sub EINSgleichKLEIN()
Dim SuchTabelle As String, zae1 As Integer, AnzahlEINS As Long
Dim Startspalte As Integer, Endspalte As Integer
SuchTabelle = "Tabelle1"    'anpassen bei Bedarf
Startspalte = 10            '="J" anpassen bei Bedarf
Endspalte = 13              '="M" anpassen bei Bedarf
With ThisWorkbook.Worksheets(SuchTabelle)
If .Range("A1") = 1 Then
.Range(.Columns(Startspalte), .Columns(Endspalte)).ColumnWidth = 0.25
Else
.Range(.Columns(Startspalte), .Columns(Endspalte)).ColumnWidth = 15
End If
End With
End Sub
'Variante 2. wenn in Spalte der Wert 1 gefunden wird, dann die Spalte 15 breit.
Sub FindeEINSinSpalten()
Dim SuchTabelle As String, zae1 As Integer, AnzahlEINS As Long
Dim Startspalte As Integer, Endspalte As Integer
SuchTabelle = "Tabelle1"    'anpassen bei Bedarf
Startspalte = 10            '="J" anpassen bei Bedarf
Endspalte = 13              '="M" anpassen bei Bedarf
With ThisWorkbook.Worksheets(SuchTabelle)
For zae1 = Startspalte To Endspalte
AnzahlEINS = Application.WorksheetFunction.CountIf(.Columns(zae1), 1)
If AnzahlEINS > 0 Then
.Columns(zae1).ColumnWidth = 0.25
Else
.Columns(zae1).ColumnWidth = 15
End If
Next zae1
End With
End Sub

Gruß Henrik

Anzeige
AW: Spaltenbreite mit Code einstellen.
13.12.2012 18:03:03
Golem
Hallo Henrik,
einen schönen Dank für Deine Antwort.
Ich find Deine Lösung sehr gut und habe auch schon eine neue Excel-Anwendung im Kopf,
wofür ich Deinen Vorschlag verwenden kann.
Für meine jetzige Anwendung ist die Lösung von Hary aber ideal.
Schöne Grüße
Golem

39 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige