| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
 | SPLIT Konstruktionsmethode Top-Down , eine App
|
Autor
|
Thema: Excel (955 mal gelesen)
|
schorschl06 Mitglied

 Beiträge: 69 Registriert: 20.01.2006
|
erstellt am: 16. Mai. 2006 16:53 <-- editieren / zitieren --> Unities abgeben:         
Hallo Uger, wie kann ich es ermöglichen, dass ein Excelsheet nur dann gespeichert werden kann, wenn in einer von mir zuvor festgelegten Zelle ein bestimmtes Ergebnis steht bzw. der Wert in dieser Zelle "Wahr" ist. Wer kann helfen? Wer weiß Rat? Viele Grüße und vielen Dank im Voraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
 
 Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 17. Mai. 2006 07:21 <-- editieren / zitieren --> Unities abgeben:          Nur für schorschl06
Hallo Schorsch Wenn du den folgenden Code in VBA einfügst kannst du auf Speichern drücken bis du Schwarz wirst, gespeichert wird erst wenn in Zelle „A1“ der Text „Ja“ steht! Viel Spaß damit! Joe Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Sheets("Tabelle1").Range("A1").Value <> "Ja" Then Cancel = True End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schorschl06 Mitglied

 Beiträge: 69 Registriert: 20.01.2006
|
erstellt am: 17. Mai. 2006 11:43 <-- editieren / zitieren --> Unities abgeben:         
Hallo JoeG, das ist genau das was ich gesucht habe. Besten Dank. Unities sind Dir gewiss. Zwei Fragen noch zum Abschluss: Kann man die Schaltflächen der Speicherbuttons im Falle einer nichtvorhandenen Übereinstimmung optisch als nicht aktiv deklarieren (z.B. das die Schrift grau anstatt schwarz ist)? Kann man bei nicht vorhandener Übereinstimmung und beim klicken auf die Speicherbuttons einen Kommentar einblenden, der die Inaktivität der Funktionen begründet? Vielen Dank im Voraus und mit besten Grüßen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
 
 Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 17. Mai. 2006 13:42 <-- editieren / zitieren --> Unities abgeben:          Nur für schorschl06
Hallo schorschl 1) Das ausschalten bzw. ausblenden der Schaltfläche Visible und Enabled gemacht. Application.CommandBars("Standard").Controls("Speichern").Visible = True Application.CommandBars("Standard").Controls("Speichern").Enabled = False 2) Das ändern der Aktion ist da schon eine andere Sache Mit OnAction kann man eine Sub angeben die dann ausgeführt wird, mit Reset werden alle Änderungen an der Toolbar wieder gelöscht. Das Icon ändern hab ich leider auf die schnelle nicht gefunden, den Infotext könnte man ewentuel ändern
Application.CommandBars("Standard").Controls("Speichern").OnAction = "MySub" Application.CommandBars("Standard").Reset
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schorschl06 Mitglied

 Beiträge: 69 Registriert: 20.01.2006
|
erstellt am: 17. Mai. 2006 15:27 <-- editieren / zitieren --> Unities abgeben:         
Hallo JoeG, funktioniert super. Gibt es diese Anweisung auch für den Befehl Datei/Speichern, um eine gewisse Synchronität zwischen der Schaltfläche und zuvor angegebener Befehlskette gewährleisten zu können? Viele Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
 
 Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 17. Mai. 2006 15:37 <-- editieren / zitieren --> Unities abgeben:          Nur für schorschl06
Hallo schorschl das sieht dann so aus Application.CommandBars("File").Controls("Speichern").Enabled = False Application.CommandBars("File").Controls("Speichern unter...").Enabled = False Application.CommandBars("File").Reset mfg Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schorschl06 Mitglied

 Beiträge: 69 Registriert: 20.01.2006
|
erstellt am: 17. Mai. 2006 15:54 <-- editieren / zitieren --> Unities abgeben:         
Hallo Joe, die Verfügbarkeit ist nur dann gewährleistet, wenn die Application.CommandBars("File").Reset entfällt. Was hat es denn mit der "Reset"-Applikation auf sich? Setzt diese die zuvor getroffenen Einstellungen wieder auf default? MfG
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
 
 Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 18. Mai. 2006 07:15 <-- editieren / zitieren --> Unities abgeben:          Nur für schorschl06
|
schorschl06 Mitglied

 Beiträge: 69 Registriert: 20.01.2006
|
erstellt am: 23. Mai. 2006 16:56 <-- editieren / zitieren --> Unities abgeben:         
Hallo JoeG, ich hätte da noch mal eine Frage. Wie kann man den folgenden Sachverhalt über VBA ausdrücken? =ODER(IDENTISCH(A1;10101);IDENTISCH(A1;10102)) Das Problem welches ich habe, ist das, dass in einer bestimmten Zelle nur die Werte 10101 und 10102 die Richtigen Werte/Ergebnisse sind. Alle weiteren Zahlenkombinationen sollen das Ergebnis "falsch" liefern. Bisher habe ich so gehandthabt, das ich den Vergleich (also ob Wahr or. Falsch) in Excel in eine Zelle z.B. B1 durchgeführt habe und mich dann auf dieses Ergebnis bezogen habe. Ich möchte aber nicht ständig bei einem neuen Excelarbeitsblatt die o.a. Funktion zusammenbauen um mich dann in VBA auf deren Ergbnis beziehen zu können. Ich möchte das möglichst gleich in meiner Worksheet-Applikation machen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
 
 Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 24. Mai. 2006 07:36 <-- editieren / zitieren --> Unities abgeben:          Nur für schorschl06
Hallo schorschl, Variante 1 ist die genaue Übersetzung Public Sub Variante1() If Range("A1").Value = 10101 Or Range("A1").Value = 10102 Then MsgBox "Ist richtig!!" Else MsgBox "Ist falsch!!" End If End Sub Mit Variante 2 kannst du auf beide Zahlen unterschiedlich reagieren
Public Sub Variante2() Select Case Range("A1").Value Case Is = 10101 MsgBox "Zahl 10101 gefunden!!" Case Is = 10102 MsgBox "Zahl 10102 gefunden!!" Case Else MsgBox "keins gefunden!!" End Select End Sub Für weitere Excel-Fragen bist du auf http://www.office-loesung.de/ besser aufgehoben Da kannst du auch einiges darüber nachlesen mfg Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
schorschl06 Mitglied

 Beiträge: 69 Registriert: 20.01.2006
|
erstellt am: 31. Mai. 2006 15:38 <-- editieren / zitieren --> Unities abgeben:         
Hallo JoeG, ich habe wieder mal folgendes Problem bzw. Frage: Zunächst einmal habe ich mir ein Makro gebastelt und innerhalb der PersonlXL aggelegt, welches auch ohne größere Prbleme funktioniert. Wird dieses Makro ausgeführt, sollen nun weitere Ereignisprozeduren wie z.B. das Speichern unter bestimmten Voraussetzungen möglich sein. Bisher hatte ich diese Prozeduren bzw. den entsprechenden Code dafür immer in "DieserArbeitsmappe" aufgeführt.Soweit funktionierte auch ganz gut. Doch ich möchte nicht jedesmal den Code "per Hand" dort einfügen. Kann man das nicht irgendwie automatisieren? Vielen Dank im Voraus und mit bestem Gruß, Georg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
 
 Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 31. Mai. 2006 15:54 <-- editieren / zitieren --> Unities abgeben:          Nur für schorschl06
|
schorschl06 Mitglied

 Beiträge: 69 Registriert: 20.01.2006
|
erstellt am: 31. Mai. 2006 16:23 <-- editieren / zitieren --> Unities abgeben:         
Hallo JoeG, wenn ich in Excel Makros anlege, habe ich doch die Möglichkeit, diese so in der VBAProject(PERSONL.XLS) abzulegen, dass sie in allen weiteren Arbeitsmappen oder neu geöffneten Excelsitzungen verfügbar sind. Das habe soweit getan und funktioniert auch ganz gut. Wird nun dieses bestimmte Makro in UG Excel ausgeführt, sollen bestimmte Ereignisprozeduren, wie z.B. das von dir o.a. mit dem "Speichern", folgen. Den Code für diese Ereignisprozeduren habe ich in einem weiteren, dem aktuell geöffneten VBAProject in dem Bereich "DieseArbeitsmappe" eingetragen. So funktionieren die Prozeduren auch einwandfrei. Was ich möchte ist, das der Code entweder automatisch in den Bereich "DieseArbeitsmappe" eingetragen wird oder ich die ganzen Prozeduren anderweitig in folge des ausgeführten Makros zum Laufe bekomme. Der Punkt ist nämlich der, dass UG Excel die extrahierten Daten, die ja leider Anfangs nur gelistet vorliegen, mittels des Makro aufbereitet, danach entsprechend als Kopie gespeichert und in eine Datenbank geschrieben werden sollen. Ich hoffe ich konnte das Problem einigermaßen rüber bringen? Grüße Georg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
JoeG Mitglied Systemadmin NX und Autocad
 
 Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 08. Jun. 2006 07:12 <-- editieren / zitieren --> Unities abgeben:          Nur für schorschl06
Hallo schorschl Ich würde den ganzen Code in einem Add-In (*.xla) zusammenfassen. Dieses Add-In wird dann bei jeder Sitzung geladen, über eine Toolbar kannst du die einzelnen Code-Teile dann bequem aufrufen. mfg Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |