Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
768to772
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bitte, Bitte

Bitte, Bitte
01.06.2006 21:58:53
Rolo
Hallo,
habe hier ein Makro, dass mir sagen soll, ob das Wort "Hello" in der Spalte F steht. Es kann allerdings auch was dahinter stehen oder davor. Das Makkro lauft ohne Probleme durch, gibt jedoch am Ende ueberall eine "0" aus, auch wenn das Wort vorkommt.
Was ist an dem Makro falsch, oder gibt es eine andere Moeglichkeit?
Gruesse und Dankeschoen

Sub versuch()
Application.ScreenUpdating = False
With Worksheets("Sheet1")
a = 10 + Application.WorksheetFunction.CountA(Columns(Cells           ("1", "A").Column))
For i = 2 To a
.Range("Q2").Value = _
Application.WorksheetFunction.CountIf(.Cells(a, "F"), "*Hello*")
Next
End With
Application.ScreenUpdating = True
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bitte, Bitte
01.06.2006 22:23:56
Ramses
Hallo
Mir ist schleierhaft was du damit erreichen willst
Application.WorksheetFunction.CountA(Columns(Cells ("1", "A").Column))
Das funktioniert nicht, weil du nur EINE Zelle angibst
Application.WorksheetFunction.CountIf(.Cells(a, "F"), "*Hello*")
Ausserdem brauchst du dazu doch keine Schleife
Sub Demo()
    Dim a
    With Worksheets("Sheets1")
        a = .Range("A65536").End(xlUp).Row
        .Range("Q2").Value = Application.WorksheetFunction.CountIf(.Range(Range("A10"), .Cells(a, "F")), "*Hello*")
    End With
End Sub

Gruss Rainer
Anzeige
AW: Bitte, Bitte
01.06.2006 23:02:59
Rolo
Hi Danke erstmal fuer deine Antwort,
aber leider kann ich mit deinem Makro nicht so viel anfangen, da mit End(xlUp) lediglich bis zur naechsten leeren zeile gegangen wird. Ich moechte aber die Anzahl der Zeilen wissen, damit in jeder Zeile in der Spalte Q gezaehlt wird, wie oft in der selben Zeile in Spalte H das Wort Hallo vorkomt.
Danke aber trotzdem, vielleicht hast du ja noch eine andere Loesung parat
Gruss
AW: Mann Mann Mann
01.06.2006 23:47:10
Daniel
Hallo
vergleiche doch mal deine Fragestellung in deinem ersten Posting mit der Problemberscheibung aus dem letzten.
Sind doch völlig andere Problemstellungen.
Erstmal genau beschreiben, was du überhaupt willst und ne aussagekräftige Beispieldatei hochladen, dann kann man dir auch helfen.
Gruß, Daniel
Anzeige
AW: Mann Mann Mann
01.06.2006 23:56:31
Rolo
Hi Daniel,
habe hier nur nochmal gepostet, da ich nicht wusste ob mir jemand meinen Beitrag von gestern antworten wueurde. Habe mir natuerlich auch gedanken gemacht, wie ich mein Problem loesen kann, deshalb ist ist dieser Post ein wenig anders...
Aber trotzdem Danke ;-)
AW: Bitte, Bitte
02.06.2006 09:31:59
Ramses
Hallo
"...bis zur naechsten leeren zeile gegangen wird. ..."
Das stimmt nicht.
Es wird von unten nach oben gesucht, daher wird "a" den Zeilenwert haben, wo der letzte Eintrag in Spalte A steht.
"..wie oft in der selben Zeile in Spalte H das Wort..."
Das war nicht Gegenstand deiner Frage und aus dem makro auch nicht ersichtlich
Option Explicit

Sub versuch()
    Dim tmpCnt As Integer
    tmpCnt = 0
    With Worksheets("Sheet1")
        a = Range("A65536").End(xlUp).Row
        For i = 2 To 10 + a
            If InStr(1, .Cells(a, "F"), "Hello") > 0 Then
                tmpCnt = tmpCnt + 1
            End If
        Next i
        .Range("Q2").Value = tmpCnt
    End With
End Sub

Gruss Rainer
Anzeige
AW: Bitte, Bitte
01.06.2006 22:35:53
Daniel
Hallo,
machs doch nicht so komplziert, dafür brauchst du doch kein Makro und keine Schleifen, sondern einfach nur
=ZÄHLENWENN(F:F;"*Hallo*")
Ergebnis größer 0 und Hallo steht irgendwo in Spalte F
Bevor du mit Programmieren anfängst, solltes du immer erst überlegen, wie sich das Problem in Excel OHNE VBA am schnellsten und einfachsten lösen läßt, dann kommen auch brauchbare Lösungen raus.
Mit deiner Lösung überschreibst du die Ergebniszelle immer mit dem letzten Wert, und der ist normalerweise 0, weil Hallo da meistens nicht drin steht
Warum schaltet ihr eigenlich immer als erstet den Bildschirm aus, wenn ihr ein Makro schreibt? Laßt den Quatsch und eure Fehler fallen euch viel schneller selbst auf.
Gruß, Daniel
Anzeige
AW: Bitte, Bitte
01.06.2006 22:58:41
Rolo
Danke fuer die Loesung. Die hatte ich auch schon. Da Problem ist, dass es sich um ein Tabellenblatt handelt, bei dem der Benutzter Zeilen loeschen und dazu fuegen kann. Wenn er also eine Zeile hinzufuegt, geht es ueber Makros glaube ich leichter und vor allem auch sicherer, da der Benutzer nichst rumpfuschen kann.
Vielleicht hast Du ja noch eine andere Loesung...
Danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige