online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Gast_Hans_Peter vom 29.08.2022, 14:30 Options

Lösung

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

Lö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

Ähnliche Themen

XP SP3; Excel 2002; VBA; Ereignis auswerten
Queelun  11.08.2009 - 166 Hits - 2 Antworten

Excel 2003 - VBA - Userform löschen
pesi  15.09.2009 - 365 Hits - 2 Antworten

Excel 2003 - VBA - Zellbezüge suchen
atogis  23.09.2009 - 439 Hits - 6 Antworten

Module und Makros per VBA im geschütztem Projekt löschen
kvtv  01.03.2010 - 396 Hits - 7 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026