Autor
|
Thema: Farbe einer Spalte per Makro (2380 mal gelesen)
|
Stelli1 Ehrenmitglied Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005
|
erstellt am: 13. Mai. 2009 20:32 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, versuch mich gerade ein wenig mit Excel ein kleines Makro hin zu bekommen. Das Ziel ist: - Eine Funktion/Button mit dem der Benutzer bestimmte Spalten für den Ausdruck quasi ausblendet - Eine Funktion die eine Spalte leert Hab mal meinen Versuch angehängt. Geht das so ? Oder gibt es andere Ideen ? Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 13. Mai. 2009 20:59 <-- editieren / zitieren --> Unities abgeben: Nur für Stelli1
'n Abend Stelli1, klar geht das so . Warum willst Du nur "quasi" ausblenden? Daten - Gruppieren kann das mit mehreren Ebenen durchaus elegant lösen... Spalte leeren ist auch gut (wobei der User auch markieren und entfernen kann ). Kürzer ist dieser Zitat: Columns(6).EntireColumn.ClearContents
, allerdings auch weniger variabel. Die Eigenschaft der Buttons 'TakeFocusOnClick' evtl. noch auf 'False' setzen. Nachteil von Makros allgemein ist, dass die Rückgängig-Taste darauf nicht reagiert. ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 13. Mai. 2009 21:17 <-- editieren / zitieren --> Unities abgeben: Nur für Stelli1
Hallo Paulchen, warum die EntireColumn-Eigenschaft (entire ~ komplett) einer kompletten Spalte benutzen? Das ist doppelt gemoppelt. Diese Variante etwas schneller (In Excel 2007 merkt man den Unterschied deutlicher): Code: Columns(6).Value2 = Empty
------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 14. Mai. 2009 08:11 <-- editieren / zitieren --> Unities abgeben: Nur für Stelli1
|
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 14. Mai. 2009 08:28 <-- editieren / zitieren --> Unities abgeben: Nur für Stelli1
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 14. Mai. 2009 08:54 <-- editieren / zitieren --> Unities abgeben: Nur für Stelli1
Zitat aus der Hilfe zu xls07: Die so genannte "Excel-Entwicklerreferenz" Zitat: SyntaxAusdruck.Value2 Ausdruck Eine Variable, die ein Range-Objekt darstellt. Anmerkungen Der einzige Unterschied zwischen dieser Eigenschaft und der Value-Eigenschaft besteht darin, dass die Value2-Eigenschaft die Datentypen Currency und Date nicht verwendet. Sie können auf Werte, die mit diesen Datentypen formatiert sind, als Gleitkommazahlen zugreifen, indem Sie den Datentyp Double verwenden.
Schön, dass die "Referenz" solch nette Kleinigkeiten verschweigt... Danke für die Auskunft. ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Ehrenmitglied Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005
|
erstellt am: 14. Mai. 2009 09:54 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, vielen Dank für die Rückmeldungen. Bei der Orginalliste handelt es sich um ein Bestellformular. In den Spalten die "quasi" ausgeblendet werden sind Mindestbestände und Bestände drin die der Lieferanten nicht sehen soll. Intern soll natürlich ein Ausdruck möglich sein. Die Spalte die geleert wird beinhaltet die alten Bestellmengen. Um da versehentlich nicht überschriebene alte Mengen drin zu haben soll sie vorher geleert werden, jedoch solle die Formatierung erhalten bleiben. Klar geht das alles manuell. Es ist jedoch schon öfters vorgekommen das dann die falsche Spalte geleert wurde bzw. Sachen bestellt wurden die nicjt nötig waren. So wie es scheint, war es so nicht ganz verkehrt. Funktionieren tut es ja. Da ich sehr wenig mit Excel VBA mache und das Objektmodel nicht sonderlich gut kenne wollte ich mal nachhören ob ich da nicht wesentlich umständliche Wege gehe. Hab das Löschen jetzt so eingebaut Columns(Spalte).Value2 = Empty Aber noch eines Zitat: Nachteil von Makros allgemein ist, dass die Rückgängig-Taste darauf nicht reagiert.
Kann man das umgehen ? Wilfried Stelberg
------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 14. Mai. 2009 10:07 <-- editieren / zitieren --> Unities abgeben: Nur für Stelli1
Zitat: Kann man das umgehen ?
Nein. Die Ausführung eines Makros ist für Excel kein "echter" Arbeitsschritt im Sinne eines "Befehls". In anderen Programmen wird ein immenser Aufwand zur Fehlerkorrektur und Rückstellung betrieben: Aktuelle Einstellungen abfragen und speichern, welche Dialogbox war aktiv (oder auch nicht) usw. Einzige - wenig elegante, aber umso effektivere - Möglichkeit: Mappe speichern. Makro ausführen. Uuups - so wollte ich das nicht... Schließen, ohne zu speichern. Das Speichern kannst Du ja gleich zu Beginn Deiner Sub einbauen; damit bleibt alles gesichtert, was bis dahin geändert wurde. ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 14. Mai. 2009 10:11 <-- editieren / zitieren --> Unities abgeben: Nur für Stelli1
|
Stelli1 Ehrenmitglied Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005
|
erstellt am: 14. Mai. 2009 10:23 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich werde da noch eine Msgbox reinbauen die vor dem leeren der Spalte warnt. Ansonsten scheint mir die Methode des Speicherns ausreichend genug. Der Aufwand hier was anderes zu machen ist mir zu hoch. Es ging ja auch schon einige Zeit ganz ohne Makro (mehr oder weniger gut). Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |