Autor
|
Thema: WorksheetFunction.CountIf funktioniert nicht (3796 mal gelesen)
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 21. Okt. 2009 17:50 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 21. Okt. 2009 19:21 <-- editieren / zitieren --> Unities abgeben:
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)
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 / zitieren --> Unities abgeben: Nur für HAW-Raptor
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
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 / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 26. Okt. 2009 18:20 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für HAW-Raptor
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
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 26. Okt. 2009 18:43 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für HAW-Raptor
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
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 / zitieren --> Unities abgeben: Nur für HAW-Raptor
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 >>)
|