Umbenennen von MEP-Blättern Schleifenüberprüfung

Hallo

 

Wie in einem vorherigen Thread erklärt, erstelle ich ein Makro, um Solidworks-Bleche beim Speichern umzubenennen. Ich denke, es könnte für einige von Ihnen genauso bequem sein.

Ich bin fast am Ende meiner Kräfte! Ich habe nur noch einen Blasebalg übrig.

Das Prinzip :

Das Makro wird beim Speichern gestartet (es ist im Benutzerformular enthalten, das verborgen bleibt).

Wenn der Blattname das Wort "Blatt" enthält, wird ein anderer Name angefordert.

Das Makro muss überprüfen, ob der Name, der dem Blatt zugewiesen wurde, nicht leer ist und nicht mit einem anderen Blatt (vorherige oder nächste) identisch ist.

Zu überprüfen, ob der Name nicht leer ist, kein Problem, aber mein Problem entsteht, wenn ich vergleichen muss, dass der Name nicht mit dem eines anderen Blattes identisch ist. Es funktioniert für die vorherigen Blätter, aber nicht immer für die folgenden. Wenn Sie z. B. einen leeren Namen und dann den Namen des nächsten Blatts vorschlagen, wird das Eingabefeld nicht neu gestartet, wenn es sollte, bis der vorgeschlagene Name eindeutig ist. Dies liegt daran, dass das Makro andernfalls gestoppt wird und das Blatt nicht umbenennt.

 

Mein Problem muss also mit der Schleife sein.

 

 

Wenn jemand die Wunderlösung hätte, wäre das großartig!

 

Vielen Dank!

 

 

Sbier

 


renommer_onglets_popup_enregistrement_-_copie.swp

Ich kenne VBA nicht, daher kann ich Ihren Code nicht analysieren, aber aus der Sicht des Algorithmus: Zu Beginn der Ausführung erstelle ich eine Liste von Blättern und vergleiche dann die Antwort mit dem Inhalt der Liste, eine Liste, die aktualisiert wird, wenn der Name validiert wird, und so weiter für die folgenden Blätter.

Danke stefbeno.

 

Ich werde versuchen, anders vorzugehen, indem ich Ihre Idee aufgreife, aber sie scheint mir nicht geeignet, da wir die Anzahl der Startblätter nicht kennen. Dies macht es schwierig, ihre Namen zu speichern, wenn es viele von ihnen gibt.

 

Wenn ein VBA-Kenner Zeit hätte, einen Blick darauf zu werfen. ;)

Hallo, können Sie Ihren Code bitte in eine txt-Datei einfügen? (Kein SolidWorks verfügbar)

Und ist das Makro an einer bestimmten Stelle fehlerhaft?

Andernfalls setzen Sie Spione auf die verschiedenen Variablen für die Stelle, an der es blockiert hat?

Hallo 

Anbei finden Sie den Text meines Makros.

 

Ja, es brüllt in einer Schleife, auf die ich in den Kommentaren hingewiesen habe.

 

Die Datenbank sollte den vom Benutzer vorgeschlagenen Nou_nom_feuille Wert mit den Namen bereits vorhandener Blätter vergleichen (die Blätter vor und nach dem umzubenennenden Blatt).

Und es funktioniert nicht in allen Fällen, insbesondere wenn sich das Blatt mit demselben Namen nach dem zu umbenennenden Blatt befindet.


macro_copie.txt

Hallo

 

Keine Ahnung, woher das Problem kommt?

 

Vielen Dank im Voraus,

1 „Gefällt mir“

In der Tat, meiner Meinung nach Ihre Zeile:

Und Nouveau_nom_feuille <> ""

sollte eher sein:

ODER (Nouveau_nom_feuille = "")

Denn wenn der Name leer ist ODER wenn der Name mit einem anderen identisch ist, müssen Sie Ihr Eingabefeld neu starten, oder?

 

 

 

Hallo!

 

Meric für die Korrektur dieses Fehlers!

 

Ich für meinen Teil musste auch das Do Until... Loop en Do... Schleife bis, da es sonst nicht funktionieren würde.

Jetzt scheint es fast zu funktionieren, lassen Sie mich erklären:

 

- Es erkennt, wenn das Blatt das Wort "Blatt" enthält.

- Er fragt mich dann nach einem anderen Namen

- Wenn der Name mit dem auf einem anderen Blatt übereinstimmt oder leer ist, wird ich erneut gefragt.

 

 

Das Problem ist, dass, wenn ich einen korrekten Namen eingebe (nicht leer und anders als der Name der anderen Blätter), er markiert wird (nach dem zweiten Mal), mich aber immer noch nach einem Namen fragt. 

 

Ich denke, es gibt immer noch ein ernsthaftes Problem mit der Schleife, aber egal wie sehr ich mich bemühe, es ist unmöglich, es loszuwerden...

 

Ich danke im Voraus, wenn es jemanden gibt, der die Zeit und die Motivation hat, herauszufinden, woher das Problem kommt.


macro_copie_v2.txt

Es ist normal, dass es Sie zweimal fragt, so ist es in Ihrem Code!

Wir sollten den ersten entfernen (zum Testen mit einem Apostroph kommentieren):

Nouveau_nom_feuille = InputBox(....

Tatsächlich dachte ich, dass meine Schleife funktioniert (weil die Inputbox wieder auftauchte, als ich ein bereits vorhandenes om gab), aber das ist nicht der Fall. Dies ist die Bedingung für die Prüfung, ob der vorgeschlagene Name für das Blatt bereits in einem anderen Blatt vorhanden ist, das veraltet ist. Meine Schleife mit j funktioniert überhaupt nicht.

 

Wie auch immer, nochmals vielen Dank für Ihre Hilfe, aber ich denke, ich werde dort aufgeben, weil es nicht funktioniert.

 

Und sowieso kann ich das Makro beim Start auch mit der \m-Methode in der Verknüpfung nicht starten, da das Makro, das das Benutzerformular auslöst, nicht gestartet wird.

Ok  , schade!

Wenn ich geholfen habe, wählen Sie bitte eine meiner Antworten aus, indem Sie unten auf "Diese Antwort als beste Antwort markieren" klicken, damit kann ich ein paar Punkte sammeln!

Vielen Dank, einen schönen Tag.