Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Arbeitsblättername in Excel mit SWX VBA auslesen

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
  
PDM Anwender Grundlagen Schulung, ein Seminar am 22.01.2025
Autor Thema:  Arbeitsblättername in Excel mit SWX VBA auslesen (367 mal gelesen)
Nobody1976
Mitglied



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

Beiträge: 49
Registriert: 20.05.2014

SWX 2022 SP5.0

erstellt am: 05. Jun. 2023 11:30    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,

ich habe mir in SWX ein Makro geschrieben welches die Stückliste in eine Excel Datei ausgleitet.
Nun möchte ich zum Vergleichen in die selbe Datei eine Version der Stückliste schreiben.
Der aktuelle Codeauszug zum Öffnen und anlegen des Arbeitsblatts lautet wie folgt:

Code:
Versionsnummer = Daten_vom_3D_Modell("SAPVersion")
    ArbeitsblattName = "Rohdaten Vers. " & Versionsnummer & " " & savedate

    Set Arbeitsbereich = CreateObject("Excel.Application")
   
    Arbeitsbereich.Visible = False
    Set Arbeitsblatt = Arbeitsbereich.Workbooks.Open(Speicherort)
   
    Arbeitsblatt.Activate
   
    Arbeitsblatt.Worksheets.Add.Name = ArbeitsblattName
    Arbeitsblatt.Worksheets(ArbeitsblattName).Move After:=Arbeitsblatt.Worksheets(Arbeitsblatt.Worksheets.Count)
    Arbeitsblatt.Worksheets(ArbeitsblattName).Activate


Mein Problem ist jetzt, wenn ich das ganze an einem Tag 2x ausführe, blockiert das System beim Anlegen des Arbeitsblatts weil es ja schon vorhanden ist.
Kann mir hier jemand weiterhelfen, wie ich die vorhandenen Arbeitsblätter auslesen kann.

Danke.

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: 1767
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: 05. Jun. 2023 11:53    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 Nobody1976 10 Unities + Antwort hilfreich

ich würde das einfach mit einer kleinen Funktion prüfen

Function SheetOk(Name As String) As Boolean
  Dim i As Integer
 
  For i = 1 To ActiveWorkbook.Sheets.Count
    If ActiveWorkbook.Sheets(i).Name = Name Then
      SheetOk = False
      Exit Function
    End If
  Next i
  SheetOk = True 
End Function

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

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

Nobody1976
Mitglied



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

Beiträge: 49
Registriert: 20.05.2014

SWX 2022 SP5.0

erstellt am: 05. Jun. 2023 12:00    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

Danke. Genau der Ansatz hat mir gefehlt.

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: 1767
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: 06. Jun. 2023 06:43    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 Nobody1976 10 Unities + Antwort hilfreich

Hallo nochmals,

wegen löschen würde ich so machen

Function SheetOk(Name As String) As Boolean
  Dim i As Integer

  For i = 1 To ActiveWorkbook.Sheets.Count
    If ActiveWorkbook.Sheets(i).Name = Name Then
      SheetOk = False
      Exit Function
    End If
  Next i
  SheetOk = True
End Function

Function DelSheet(SheetName As String) As Boolean
  Dim wb As Workbook
  Dim ok As Boolean
   
  If SheetOk(SheetName) Then
    DelSheet = False
    Exit Function
  End If
 
  Set wb = ActiveWorkbook
  Application.DisplayAlerts = False
  ok = wb.Sheets(SheetName).Delete
  Application.DisplayAlerts = True
  DelSheet = ok
End Function

Sub main()
  Dim BName As String
 
  BName = "Tabelle4"
 
  If DelSheet(BName) Then
    MsgBox "Blatt " & BName & " gelöscht", vbOKOnly, "Meldung"
  Else
    MsgBox "Blatt " & BName & " konnte nicht gelöscht werden", vbOKOnly, "Meldung"
  End If
End Sub

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

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