MS EXCEL 2003 SP3 Spaltenbereich bei VBA Makros fehlerhaft
ich will in einem Makro Spaltenbreiten z.B. auf null und dann wieder auf 12 setzen
bei den Spalten A -H funktioniert das auch. In den folgenden spalten wird
nicht der angegebene Bereich z.B. P:S markiert sondern ein viel grösser
Bereich z.B. K:AH.
Der selbe Fehler tritt auf wenn ich im Makro nicht Spaltenbreiten verändere sondern
diese aus und einblende.
A:H funktioniert , alle weiteren Spalten werden fehlerhaft markiert und dann natürlich
auch entsprechend "ungewünscht" aus und eingeblendet.
Antwort schreiben
Antwort 1 von Hajo_Zi vom 29.08.2022, 14:32 Options
Hallo Peter,
hast Du da gleiche Problem bei numerischen Werten?
Gruß Hajo
Antwort 2 von Gast_Hans_Peter vom 29.08.2022, 14:32 Options
Test Antwort
Antwort 3 von Gast_Hans_Peter vom 29.08.2022, 14:36 Options
0 und 12 sind doch numerische Werte , oder ?
Antwort 4 von Gast_Hans_Peter vom 29.08.2022, 14:48 Options
erstes Makro ok, zweites Makro fehlerhaft
Sub KlappeMo()
Mo = Range("D6")
Mo = ActiveCell.Columns("D:D").EntireColumn.ColumnWidth
If Mo = 0 Then
'Spalte ausgeblendet dann einblenden
Columns("D:G").Select
Selection.ColumnWidth = 12
Range("B16").Select
Else
'Spalte eingeblendet dann ausblenden
Columns("D:G").Select
Selection.ColumnWidth = 0
Range("B16").Select
End If
End Sub
Sub KlappeDi()
Mo = Range("J6")
Mo = ActiveCell.Columns("J:J").EntireColumn.ColumnWidth
If Mo = 0 Then
'Spalte ausgeblendet dann einblenden
Columns("J:M").Select
Selection.ColumnWidth = 12
Range("H16").Select
Else
'Spalte eingeblendet dann ausblenden
Columns("J:M").Select
Selection.ColumnWidth = 0
Range("H16").Select
End If
End Sub
Antwort 5 von Hajo_Zi vom 29.08.2022, 15:25 Options
Hallo Peter
Du hast geschrieben
Zitat:
Spalten A -H
das sind für mich keine numerischen Angaben das wäre 1:8
Gruß hajo
Antwort 6 von Gast_Hans_Peter vom 29.08.2022, 15:59 Options
Jetzt verstehe ich, OK ich habe in dem Makro für den
Wert im ersten Makro ("G:M") jetzt ("4:7") angegeben
Bringt aber Comp.. Fehler im Makro , oder wie muss ich
ersatzweise numerische Werte für Spalten eingeben?
Antwort 7 von Gast_Hans_Peter vom 29.08.2022, 16:05 Options
sorry, hab mich verschrieben , meinte ("D:G") hab aber auch im zweiten Makro versucht ("J:M") numerisch zu ersetzen, ging
nicht. kam schon wie gesagt Comp...Fehler.
Antwort 8 von Hajo_Zi vom 29.08.2022, 16:20 Options
Hallo Peter,
ich habe jetzt folgendes Makro ohne Probleme laufen lassen.
Option Explicit
Sub KlappeDi()
Dim Mo As Double
Mo = Range("J6")
Mo = ActiveCell.Columns("J:J").EntireColumn.ColumnWidth
If Mo = 0 Then
'Spalte ausgeblendet dann einblenden
Columns("J:M").ColumnWidth = 12
Else
'Spalte eingeblendet dann ausblenden
Columns("J:M").ColumnWidth = 0
End If
End Sub
Gruß hajo
Antwort 9 von Gast_Hans_Peter vom 29.08.2022, 17:05 Options
Hallo hajo , erst mal besten Dank für die Geduld
Habe makro kopiert und angewendet
Spalten werden zwar minimiert (0) aber im nächsten Durchlauf
nicht mehr vergrössert (12)
Die Frage "ist Mo null" wird falsch ausgelesen.
Habe das mit einer msgbox ausgeben lassen
Die hat bei Spaltenbreite 0 noch 10,78 ausgegeben
das wird wohl der knackpunkt sein
p.s habe Hintr Range noch select angehängt
Antwort 10 von Hajo_Zi vom 29.08.2022, 17:15 Options
Hallo Peter,
das Range ist sinlos, bzw. Falsch an der Stelle.
Option Explicit
Sub KlappeDi()
Dim Mo As Boolean
Mo = Columns("J:J").EntireColumn.Hidden
If Mo Then
'Spalte ausgeblendet dann einblenden
Columns("J:M").ColumnWidth = 12
Else
'Spalte eingeblendet dann ausblenden
Columns("J:M").ColumnWidth = 0
End If
End Sub
Gruß hajo
Antwort 11 von Gast_Hans_Peter vom 29.08.2022, 17:17 Options
hab noch mal getestet
mit A6 B6 C6 und D6 funktioniert alles
ab Prüfung mit zelle E6 (also ab Spalte E) liest das Makro einen
falschenWert aus der aktuellen Spaltenbreite !!!!
wenigsten bei meinem EXCEL ??????????????????
Antwort 12 von Hajo_Zi vom 29.08.2022, 17:25 OptionsLösung
Hallo Peter,
dann beschreibe Deine Aufgabe genau, ich habe es jetzt so interpretiert, je nach zustand der Splate J wrd ein oder ausgeblendet.
Gruß hajo
Antwort 13 von Gast_Hans_Peter vom 29.08.2022, 17:25 Options
Hallo Hajo, hab kurz getestet , sieht supergut aus.
Wenn das jetzt bei meiner Datei klappt, bin ich happy
SUUUUUUUUUUUUUUUUUPPPER Dank
wollte das bis morgen unbedingt gelöst haben
Mit deiner Hilfe hab ichs jetzt geschafft.
Ich habe halt nur ein fundiertes "Halbwissen" was VBA angeht
deswegen dasmit dem Range
Besten Dank noch mal!
und einen schönen Tag noch
gruss HP
Antwort 14 von hape100 vom 26.09.2022, 13:49 Options
Hallo an die hilfreichen Geister im Hintergrund
ich möchte ein makro x nur dann starten können wenn
die aktuelle Zelle bzw das gerade markierte Feld
im Bereich A1 bis B10 ist.
vorab besten Dank