Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Variablenübergabe bei CountIf

Betrifft: Variablenübergabe bei CountIf von: BerndB
Geschrieben am: 23.08.2004 14:22:17

Hallo NG,

kann mir bitte jemand sagen, wie ich die Funktion:
WorksheetFunction.CountIf(Sheets(shBas).Range(Adr), "U")
so umwandle, dass ich statt dem "U" eine Stringvariable 'Kennz'
mit dem Inhalt "U" verwenden kann?

Meine Variablenversuche zeitigten bisher alle keinen Erfolge!

Mein Makro soll aber unterschiedliche Kennzeichen auswerten können.

Vielen Dank für Eure Unterstützung
Bernd

  


Betrifft: AW: Variablenübergabe bei CountIf Lösung von: BerndB
Geschrieben am: 23.08.2004 14:55:09

Hallo NG,

ich habe jetzt selber eine Lösung gefunden, die ein Ergebnis zeitigt:

1) den Buchstaben in seine Code-Nr. umwandeln, hier Kennz = ASC("U")
2) WorksheetFunction.CountIf(Sheets(shBas).Range(Adr), Chr(Kennz))

Damit konnte ich das Problem lösen.

Sollte jemand noch eine elegantere Lösung finden, bitte antworten.
Bernd


  


Betrifft: AW: Variablenübergabe bei CountIf Lösung von: Roland Hochhäuser
Geschrieben am: 23.08.2004 15:13:13

Hallo Bernd,
hier mal eine Alternative, mit der du in Bezug auf den gesuchten String variabler bist und auch die Häufigkeit vorgeben kannst:

Sub Suchen()
Dim Kennz As String, Adr As String, i As Integer
i = 3
Adr = Range("A1:C5").Address
Kennz = InputBox("Welcher Begriff wird gesucht?", "Frage", "U")
If WorksheetFunction.CountIf(Sheets(1).Range(Adr), Kennz) = i Then MsgBox "Begriff " & i & "-mal gefunden!"
End Sub

Gruß
Roland


  


Betrifft: AW: Variablenübergabe bei CountIf Lösung von: BerndB
Geschrieben am: 23.08.2004 16:51:20

Hallo Roland,

danke für Dein Bspl.

Meine Abwandlung sieht so aus:
Sub Suchen()
  Dim Kennz As String, Adr As String, i As Integer

  Adr = Range("C10:C375").Address
  Kennz = Sheets(7).Range(rgSD).Value
'  Kennz = InputBox("Welcher Begriff wird gesucht?", "Frage", "U")
  i = WorksheetFunction.CountIf(Sheets(9).Range(Adr), Kennz)
  MsgBox "Begriff " & Kennz & " wurde " & i & "-mal gefunden!"
End Sub


Mit der Inputbox gibt es keine Probleme!

Bei mir wird der Buchstabe aus einer Zelle ausgelesen und der Stringvariablen Kennz zugewiesen.

Kennz = Sheets(7).Range(rgSD).Value
hatte bei mir als erste Variante nicht zum Ergebnis geführt.
Jetzt hatte ich bei Deinem Bspl. die Idee der Textzuweisung:
Kennz = Sheets(7).Range(rgSD).Text

Da hat es auf einmal geklappt. Nochmal zurück mit .Value geht jetzt auch!!!
!!! Komisch !!!???
Jetzt frage mich bloss nicht, warums am Anfang nicht ging!?

Nochmal vielen Dank
Bernd