Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  WorksheetFunction.CountIf funktioniert nicht

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
Autor Thema:  WorksheetFunction.CountIf funktioniert nicht (3796 mal gelesen)
HAW-Raptor
Mitglied
Design Release Engineer


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

Beiträge: 58
Registriert: 12.10.2009

erstellt am: 21. Okt. 2009 17:50    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 aus meine Excel-Userform diesen Befehl genommen, um eine ComboBox zu füllen und dabei die doppelten Einträge zu ignorieren.
Hier der Excel-Code:

Private Sub comboboxfuellen(cb As ComboBox, wks As Worksheet, lngCol As Long)


    Dim lngZeile As Long
 
    For lngZeile = 2 To wks.Cells(wks.Rows.Count, lngCol).End(xlUp).Row
        If WorksheetFunction.CountIf( _
        wks.Range(wks.Cells(2, lngCol), wks.Cells(lngZeile, lngCol)), _
        wks.Cells(lngZeile, lngCol)) = 1 Then
            cb.AddItem wks.Cells(lngZeile, lngCol)
        End If
    Next lngZeile

End Sub

Funktioniert in Excel wunderbar nur in Catia meckert er immer "CountIf Eigenschaften der WorksheetFunction konnte nicht zugeordnet werden" kann da jemand helfen?

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

HAW-Raptor
Mitglied
Design Release Engineer


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

Beiträge: 58
Registriert: 12.10.2009

erstellt am: 21. Okt. 2009 19:21    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,
die Funktion Autofilter funktioniert auch nicht, kann da jemand helfen? So funktionierts in Excel:

ExcelSheet.Range("A1:HH308").AutoFilter Field:="CF", Criteria1:="8"

In Catia meckert er das Autofilter nicht ausgeführt werden konnte

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

V5Playaz
Mitglied
Dipl.-Ing (BA)


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

Beiträge: 447
Registriert: 12.07.2005

DELL PRECISION 390
3,25 GB RAM
WIN XP PRO SP2
CATIA V5 R16-19
Delmia V5 R19
VB6, VB2008
Adobe Acrobat 9 Pro Extended

erstellt am: 21. Okt. 2009 22:38    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 HAW-Raptor 10 Unities + Antwort hilfreich

Arbeitest du mit dem VBA-Editor in CATIA?

Hast du schon die Excel-Bibliothek in VBA eingebunden?

Alternativ statt in CATIA, außerhalb wie z.b. in VB.Net oder Excel-VBA programmieren.

grüße Dominik

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 22. Okt. 2009 13: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 HAW-Raptor 10 Unities + Antwort hilfreich


WorkSheetFunction_v1.0.zip

 
Hallo,

schau dir mal mein Beispiel im Anhang an. Hier habe ich auch noch eine Test-Exceldatei mit angehängt. Das Funktioniert so einwandfrei. Von dem her denke ich das du vor irgendeiner Excel Funktion nicht das Excel Objekt gehängt hast. Außerdem kannst du innerhalb von CATIA VB kein "xlUp" bzw. irgendwelche Excel-Konstanten verwenden. Diese funktionieren nur in Excel da Excel die entsprechende Library zum "übersetzen" in einen Long Wert mitliefert. Diese Lib könntest du auch in CATIA einbinden aber ich habe noch nicht rausgefunden wo sie liegt 

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

HAW-Raptor
Mitglied
Design Release Engineer


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

Beiträge: 58
Registriert: 12.10.2009

erstellt am: 26. Okt. 2009 18:20    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

Hi,
danke schon mal für deine Hilfe, ich glaube so langsam bekomme ich es auch hin nur eine Frage habe ich noch:

Du hast geschrieben, dass ich in Catia keine Excel eigenen Variablen benutzen sollte.
Ich habe folgenden Makroaufzeichnung in meine Catia Userform eingefügt, in der nun natürlich etliche Variablen deklariert sind, gibt es eine Möglichkeit, diese zu ersetzen?

Danke und schönen Abend noch!

Code:
Sub sortieren(lngCol As Long)

        iWorksheet.Sort.SortFields.Clear
        iWorksheet.Sort.SortFields.Add Key:=iWorksheet.Range(iWorksheet.Cells(2, lngCol), iWorksheet.Cells(308, lngCol)) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With iWorksheet.Sort
            .SetRange iWorksheet.Range("A1:HH308")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub


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

Tstone
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 163
Registriert: 04.06.2003

Dell Precision 470
Intel Xeon CPU 3,00GHz
2GB Ram
Microsoft Windows XP
Catia V5 R18 SP6
VB2005

erstellt am: 26. Okt. 2009 18:39    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 HAW-Raptor 10 Unities + Antwort hilfreich

Hallo HAW-Raptor
ich denke du meinst nicht Variabeln, sondern Enumerationen (z.B: SortOn:=xlSortOnValues)
Jeder Wert in den Enumerationen wird auch durch einen Integer-Wert repräsentiert. Du musst nur den Integer-Wert anstelle des Enumerationsbegriff einfügen, dann funktioniert das Ganze auch. Diesen Integer-Wert kannst du im Objektkatalog im Excel-VBA-Editor finden, oder in der entsprechenden Hilfedatei.
Das ist übrigends ein weiterer Nachteil der späten Bindung.

------------------
Grüße TStone
   "Respektiere die Macht der Worte, wähle sie mit Bedacht!"

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

HAW-Raptor
Mitglied
Design Release Engineer


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

Beiträge: 58
Registriert: 12.10.2009

erstellt am: 26. Okt. 2009 18: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

Hallo,
aber ist es damit möglich, das Programm so zu schreiben, das die Librays gar nicht mehr benötigt werden? Ich habe jetzt halt das Problem, dass die Programme auf meinem Rechner laufen (Office 2007) aber nicht auf anderen (Office 2003). Die haben die Library Excel 11.0 und ich 12.0 

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

Tstone
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 163
Registriert: 04.06.2003

Dell Precision 470
Intel Xeon CPU 3,00GHz
2GB Ram
Microsoft Windows XP
Catia V5 R18 SP6
VB2005

erstellt am: 26. Okt. 2009 18:57    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 HAW-Raptor 10 Unities + Antwort hilfreich

Guten Abend
Ja, wenn du die Librays nicht in den Verweisen anziehst bist du unabhängig von der Version.
Aber auch das ist keine Frage der Bindungsart. Auch frühe Bindung ist ohne Verweis möglich.
Du must dich einfach für einen Weg der Bindung entscheiden und diesen dann konsequent gehen.
Ich bin halt ein Freund der frühen Bindung, DanielFr. bevorzugt die späte Bindung.
Beides hat Vor- und Nachteile!
Dir bleibt die Qual der Wahl. Ich kann dir nur empfehlen, dich mit den Bindungsarten und den COM-Mechanismen auseinander zu setzen, insbesondere wenn dieses nicht das einzige VBA-Projekt mit COM-Bindung sein wird an dem Du arbeitest.

------------------
Grüße TStone
   "Respektiere die Macht der Worte, wähle sie mit Bedacht!"

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 27. Okt. 2009 05: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 Nur für HAW-Raptor 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von HAW-Raptor:
Hi,
danke schon mal für deine Hilfe, ich glaube so langsam bekomme ich es auch hin nur eine Frage habe ich noch:

Du hast geschrieben, dass ich in Catia keine Excel eigenen Variablen benutzen sollte.
Ich habe folgenden Makroaufzeichnung in meine Catia Userform eingefügt, in der nun natürlich etliche Variablen deklariert sind, gibt es eine Möglichkeit, diese zu ersetzen?

Danke und schönen Abend noch!

Code:
Sub sortieren(lngCol As Long)

        iWorksheet.Sort.SortFields.Clear
        iWorksheet.Sort.SortFields.Add Key:=iWorksheet.Range(iWorksheet.Cells(2, lngCol), iWorksheet.Cells(308, lngCol)) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With iWorksheet.Sort
            .SetRange iWorksheet.Range("A1:HH308")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub



Hallo,

leider nicht automatisch. Das heißt du musst per Hand erst mal Excel starten. In den VB-Editor gehen, dort mit F2 den Objektbrowser aufrufen und dann dein Script Zeile für Zeile  abklappern. Ich mein viele sind ja gleich und du kannst somit einfach danach suchen + ersetzen 

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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)2023 CAD.de | Impressum | Datenschutz