Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Per Makro Excel Wert prüfen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
AMB 2024
Autor Thema:  Per Makro Excel Wert prüfen (845 mal gelesen)
Zega
Mitglied



Sehen Sie sich das Profil von Zega an!   Senden Sie eine Private Message an Zega  Schreiben Sie einen Gästebucheintrag für Zega

Beiträge: 44
Registriert: 19.07.2016

Hardware
-Intel Xeon W3550
-Nvidia Quadro 2000
-12GB RAM
Software
-Windows 7 Professional
-SolidWorks 2016 SP4.0
-Office 2013

erstellt am: 04. Nov. 2016 08:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


P_Platten_ersteller.zip

 
Hallo zusammen,
ich habe mir ein kleines Makro gebastet, das mir P-Platten automatisch erstellt. Ausserdem soll es den Werkstoff bestimmen.
Die Abmaße der P-Platten, und für welches Abmaß es welchen Werkstoff gibt, wird aus einer Excel Tabelle ausgelesen.

Nun zu meinem Problem:
Ich habe in meiner Excel Tabelle alle Werkstoffe die es gibt für solche Platten aufgelistet, und trage dort nun für jede Platte ein ob sie es in diesem Werkstoff gibt oder nicht. Dies soll passieren indem ich entweder 1  oder 0 in die Zelle schreibe. Wobei 1 für verfügbar und 0 für nicht verfügbar steht.
In meiner UserForm hab ich nun alle Werkstoffe als Buttons und möchte nun das dass Makro beim ändern der Plattengröße aus der Tabelle ließt welcher Werkstoff verfügbar ist und welcher nicht. Und die Buttons so umstellt das sie anklickbar sind bzw. nicht anklickbar.
Beim ändern der Werte in der UserForm soll es wieder lesen und für den geänderten Wert das gleiche auslesen.
Ich habe schon was versucht weiß aber nicht ob das in die richtige Richtung geht.

Hoffe ich habe es ein wenig verständlich erklärt.
Zusätzlich sind die Dateien auch angehängt.

Vielen Dank schonmal für die Hilfe! 

Gruß

------------------
Rechtschreibfehler dürfen behalten werden 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 04. Nov. 2016 10:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Zega 10 Unities + Antwort hilfreich

Hallo Zega,

nur für mein Verständnis verstehe ich das richtig dass wenn du in der Liste (ComboBox) etwas auswählst er Breite, Länge und Höhe automatisch nach Auswahl befüllen soll und je nach Auswahl auch die entsprechend verfügbaren Materialien anhand der Excellliste aktiv setzten (Button aktivieren) soll?

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Zega
Mitglied



Sehen Sie sich das Profil von Zega an!   Senden Sie eine Private Message an Zega  Schreiben Sie einen Gästebucheintrag für Zega

Beiträge: 44
Registriert: 19.07.2016

Hardware
-Intel Xeon W3550
-Nvidia Quadro 2000
-12GB RAM
Software
-Windows 7 Professional
-SolidWorks 2016 SP4.0
-Office 2013

erstellt am: 04. Nov. 2016 10:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,

wenn du in der Liste (ComboBox) etwas auswählst er Breite, Länge und Höhe automatisch nach Auswahl befüllen soll
> Soweit funktioniert es ja, er erstellt auch schon eine Körper

und je nach Auswahl auch die entsprechend verfügbaren Materialien anhand der Excellliste aktiv setzten (Button aktivieren) soll?
> genau das ist mein Problem. Ausserdem soll er bei ändern der ComboBox die Buttons natürlich auch aktualisieren

Hoffe jetzt ist es klarer.

Gruß

------------------
Rechtschreibfehler dürfen behalten werden 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nahe
Ehrenmitglied



Sehen Sie sich das Profil von nahe an!   Senden Sie eine Private Message an nahe  Schreiben Sie einen Gästebucheintrag für nahe

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 04. Nov. 2016 12:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Zega 10 Unities + Antwort hilfreich

Hallo Zega,

ich würde als erstes die Button umbenennen, damit sie durchnummeriert sind in der Art W1, W2, W3,...

und dann folgenden Code bei "ComboBox1_Change" einbauen


  y = ComboBox1.ListIndex + 2
  x = 0
 
  For i = x To 12
    ww = Excel.ActiveSheet.Cells(y, x + 8).Value
    If ww = "1" Then
      UserForm1.Controls.Item("W" & Trim(Str(i + 1))).Enabled = True
    Else
      UserForm1.Controls.Item("W" & Trim(Str(i + 1))).Enabled = False
    End If
    x = x + 1
  Next i

könnte man sicher noch etwas flexibler gestalten aber so funktioniert es bei mir zumindest mal

PS
aktuell ist bei mir Excel immer noch im Taskmanager aktiv wenn ich auf "Ende" klicke

------------------
Grüße
Heinz

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Zega
Mitglied



Sehen Sie sich das Profil von Zega an!   Senden Sie eine Private Message an Zega  Schreiben Sie einen Gästebucheintrag für Zega

Beiträge: 44
Registriert: 19.07.2016

Hardware
-Intel Xeon W3550
-Nvidia Quadro 2000
-12GB RAM
Software
-Windows 7 Professional
-SolidWorks 2016 SP4.0
-Office 2013

erstellt am: 09. Nov. 2016 07:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Heinz,
hab es gerade versucht und es funktioniert.
Vielen Dank!

Gruß

------------------
Rechtschreibfehler dürfen behalten werden 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nahe
Ehrenmitglied



Sehen Sie sich das Profil von nahe an!   Senden Sie eine Private Message an nahe  Schreiben Sie einen Gästebucheintrag für nahe

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 09. Nov. 2016 08:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Zega 10 Unities + Antwort hilfreich

Hallo Zega,

schön zu hören, dass es funktioniert

Vielleicht ein paar Anregungen
- beim durchlaufen der Schleife, um die Materialien zu ermitteln,
wäre es sicher besser nicht einen fixen Wert zu verwenden (For i = x To 12), sondern zu prüfen ob die Zelle eine Wert enthält
und so lange Werte gefunden werden wird ausgewertet
das hat den Vorteil, dass Du Dein Makro nicht immer anpassen musst wenn Materialien dazukommen oder wegfallen

- ich würde auch zu Beginn des Makros, alle Daten der Excel-Datei in Datenfelder einlesen
damit ersparst Du Dir bei jeder Änderung Combobox den Zugriff auf Excel

- keine Ahnung ob Du das brauchst, aber auch die umgekehrte Version wäre wahrscheinlich nett
wenn Du einen Material-Button klickst und die Werte der Combobox werden entsprechend eingeschränkt
(dann würdest Du aber unter Umständen eine Art Rest-Button benötigen um alle "Filter" zu löschen)

------------------
Grüße
Heinz

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Zega
Mitglied



Sehen Sie sich das Profil von Zega an!   Senden Sie eine Private Message an Zega  Schreiben Sie einen Gästebucheintrag für Zega

Beiträge: 44
Registriert: 19.07.2016

Hardware
-Intel Xeon W3550
-Nvidia Quadro 2000
-12GB RAM
Software
-Windows 7 Professional
-SolidWorks 2016 SP4.0
-Office 2013

erstellt am: 09. Nov. 2016 10:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Heinz,
das sind alles tolle Sachen aber leider noch zu viel für mich...
Bin kein VBAler sondern hab das Makro eigentlich nur zum üben erstellt da ich mir ein wenig Grundkentnisse in diesem Gebiet aneignen möchte.
Bin schon froh das ich das Makro, so wie es jetzt ist mit deiner Hilfe hinbekommen habe.

Falls ich jedoch Zeit habe werde ich deine Gedanken mal versuchen in die Tat umzusetzten da es sinnvolle Änderungen bzw. Erweiterungen wären.

Aber vielen Dank für die Anregungen!

Gruß

------------------
Rechtschreibfehler dürfen behalten werden 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz