Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1024to1028
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
Inhaltsverzeichnis

Erste und letzte Zelle finden

Erste und letzte Zelle finden
18.11.2008 09:38:00
Frank
Guten morgen,
ich möchte die Zellen finden indem für Start die 06:00 und für Ende die 14:00 steht.
Beispiel:
In der Zelle A100 steht 06:00
In der Zelle A1000 steht 14:00
Wenn die Startzelle und die Endzelle gefunden wurden, dann möchte ich den Zellenbezug in G übernehme und G100 bis G1000 summieren. Das Summenergebniss möchte ich in H 1000 anzeigen.
In der Spalte A befindet sich immer eine Uhrzeit, in der Spalte G befindet sich immer eine Zahl.
Vielen dank für Hilfe.
Gruß
Frank

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mit summenprodukt()
18.11.2008 09:53:00
heikoS
Hallo Frank,
das sollte z.B. so gehen:
Tabelle2

 ABCDEFGHI
105:00:00     1Start06:00:00
206:00:00     2Ende12:00:00
307:00:00     5Ergebnis22
408:00:00     4  
509:00:00     1  
610:00:00     2  
711:00:00     5  
812:00:00     3  
913:00:00     2  
1014:00:00     1  

Formeln der Tabelle
ZelleFormel
I3=SUMMENPRODUKT(--(A1:A10>=I1); --(A1:A10<=I2); G1:G10)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Klappt´s?
Gruß Heiko
Anzeige
AW: Erste und letzte Zelle finden
18.11.2008 10:22:00
Frank
Hallo Heiko,
leider klappt es so nicht.
Ich muß nach der Zelle suchen wo sich z.B. Startzeit befindet. Es ist nur durch Zufall A100.
Die Endzelle (14:00) kann sich auch in A3154 befinden.
Dazu benötige ich ein Makro was ich in meinem Makro einbinde.
Dank dir auch wen es so nicht funktioniert.
Gruß
Frank
AW: Erste und letzte Zelle finden
18.11.2008 10:35:00
Frank
Entschuldige Heiko,
aber da habe ich etwas übersehen.
Ich werde es mal in mein Makro eintragen.
Denke das es so funktioniert.
Melde mich noch einmal.
Gruß
Frank
AW: Erste und letzte Zelle finden
18.11.2008 10:43:57
Chris
Servus Frank,
als Makro:
Sub t() Dim i As Long, lngLetzte As Long, lngAnfang As Long, lngEnde As Long Dim dbSumme As Double lngLetzte = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lngLetzte If Cells(i, 1) = 6 / 24 Then lngAnfang = Cells(i, 1).Row If Cells(i, 1) = 14 / 24 Then lngEnde = Cells(i, 1).Row: Exit For Next i If lngAnfang 0 And lngEnde 0 Then dbSumme = Application.WorksheetFunction.Sum(Range("G" & lngAnfang & ":G" & lngEnde)) End If MsgBox dbSumme End Sub


Gruß
Chris

Anzeige
AW: Erste und letzte Zelle finden
18.11.2008 12:08:31
Frank
Hallo Chris,
Aus irgendeinem Grund funktioniert es nicht.
Angezeigt wird:
dbSumme = 0 (ist falsch)
lngLetzte = 2936 (ist richtig)
lngAnfang = 0 (ist falsch)
lngEnde = 0 (ist falsch)
06:00:12 befindet sich in A103.
Die Sekunden interessieren mich dabei nicht.
Dim i As Long, lngLetzte As Long, lngAnfang As Long, lngEnde As Long
Dim dbSumme As Double
lngLetzte = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lngLetzte
If Cells(i, 1) = 6 / 24 Then lngAnfang = Cells(i, 1).Row
If Cells(i, 1) = 14 / 24 Then lngEnde = Cells(i, 1).Row: Exit For
Next i
If lngAnfang 0 And lngEnde 0 Then
dbSumme = Application.WorksheetFunction.Sum(Range("G" & lngAnfang & ":G" & lngEnde))
End If
Rem MsgBox dbSumme
Range("J4").Value = dbSumme
Range("J5").Value = lngLetzte
Range("J6").Value = lngAnfang
Range("J7").Value = lngEnde
Gruß
Frank
Anzeige
AW: versuch mal dies
18.11.2008 14:34:00
Chris
Servus,
dann so:

Sub t()
Dim i As Long, lngLetzte As Long, lngAnfang As Long, lngEnde As Long
Dim dbSumme As Double, merkAnfang As Long, merkEnde As Long
Dim rSuche As Range, rFinde As Range, strErste As String
lngLetzte = Cells(Rows.Count, 1).End(xlUp).Row
Set rFinde = Range("A1:A" & lngLetzte)
Set rSuche = rFinde.Find(what:="06:00:*", lookAt:=xlPart, LookIn:=xlValues)
If Not rSuche Is Nothing Then
strErste = rSuche.Address
merkAnfang = rSuche.Row
Do
lngAnfang = rSuche.Row
If lngAnfang > merkAnfang Then
lngAnfang = merkAnfang
End If
Set rSuche = rFinde.FindNext(rSuche)
Loop While Not rSuche Is Nothing And rSuche.Address  strErste
End If
Set rSuche = rFinde.Find(what:="14:00:*", lookAt:=xlPart, LookIn:=xlValues)
If Not rSuche Is Nothing Then
strErste = rSuche.Address
merkEnde = rSuche.Row
MsgBox merkEnde
Do
lngEnde = rSuche.Row
If lngEnde > merkEnde Then
lngEnde = merkEnde
End If
Set rSuche = rFinde.FindNext(rSuche)
Loop While Not rSuche Is Nothing And rSuche.Address  strErste
End If
If lngAnfang  0 And lngEnde  0 Then
dbSumme = Application.WorksheetFunction.Sum(Range("G" & lngAnfang & ":G" & lngEnde))
End If
MsgBox dbSumme
End Sub


Bei der Schleife wurde genau 06:00:00 und 14:00:00 gesucht, wenn die nicht da sind, dann macht er auch keine Summe.
Gruß
Chris

Anzeige
AW: Nachtrag
18.11.2008 14:49:00
Chris
servus,
und falls dich die Minuten auch nicht kratzen, dann so:

Sub t()
Dim i As Long, lngLetzte As Long, lngAnfang As Long, lngEnde As Long
Dim dbSumme As Double, merkAnfang As Long, merkEnde As Long
Dim rSuche As Range, rFinde As Range, strErste As String
lngLetzte = Cells(Rows.Count, 1).End(xlUp).Row
Set rFinde = Range("A1:A" & lngLetzte)
Set rSuche = rFinde.Find(what:="06:*", lookAt:=xlPart, LookIn:=xlValues)
If Not rSuche Is Nothing Then
strErste = rSuche.Address
merkAnfang = rSuche.Row
Do
lngAnfang = rSuche.Row
If lngAnfang > merkAnfang Then
lngAnfang = merkAnfang
End If
Set rSuche = rFinde.FindNext(rSuche)
Loop While Not rSuche Is Nothing And rSuche.Address  strErste
Else
MsgBox "Es gibt keine Uhrzeit beginnend mit ""06:..."" !", vbExclamation, "Abbruch"
Exit Sub
End If
Set rSuche = rFinde.Find(what:="14:*", lookAt:=xlPart, LookIn:=xlValues)
If Not rSuche Is Nothing Then
strErste = rSuche.Address
merkEnde = rSuche.Row
Do
lngEnde = rSuche.Row
If lngEnde > merkEnde Then
lngEnde = merkEnde
End If
Set rSuche = rFinde.FindNext(rSuche)
Loop While Not rSuche Is Nothing And rSuche.Address  strErste
Else
MsgBox "Es gibt keine Uhrzeit beginnend mit ""14:..."" !", vbExclamation, "Abbruch"
Exit Sub
End If
If lngAnfang  0 And lngEnde  0 Then
dbSumme = Application.WorksheetFunction.Sum(Range("G" & lngAnfang & ":G" & lngEnde))
End If
MsgBox dbSumme
End Sub


außerdem ist eine Fehlerbehandlung dabei, wenn die Uhrzeit garnicht auftritt.
Gruß
Chris

Anzeige
AW: versuch mal dies
18.11.2008 15:13:44
Frank
Hallo Hary,
das funktioniert leider nicht. Wie ich gerade gerlernt habe, wird nur die glatte Stundenzeit verglichen.
Wenn die Zeit jedoch z.B. 06:12:30 ist, dann wird der Vergleich nie mit wahr bewertet.
Gruß
Frank

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige