Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBAE die zweite

Forumthread: VBAE die zweite

VBAE die zweite
16.03.2007 14:39:00
Horst
Hallo,
danke für die bisherige Rückmeldung. Das Problem bei dem vorgeschlagenen Ansatz ist fogendes:
Die dargestellte Sequenz ist Teil einer größeren Zeitreihe. Sofern in der ersten Spalte 0 steht, sollte in der 3. Spalte auch 0 stehen. Das Problem ist der Sequenzwechsel. Am besten wäre glaub' ich eine do ... while Schleife zu programmieren.
0 0 0
0 -1 0
0 0 0
1 0 1
1 0 1
1 0 1
1 0 1
0 0 1
0 -1 1
1 0 1
0 0 1
0 0 1
0 -1 1
0 -1 0
0 0 0
0 -1 0
0 -1 0
Nochmal das Problem:
Die ersten beiden Spalten stellen den Input, die dritte Spalte den gewünschten Output dar. Es geht darum, dass der Output 1 sein soll, sobald in der ersten Spalte eine 1 (Startsignal) steht und solange bis in der zweiten Spalte eine -1 (Stoppsignal) steht.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBAE die zweite
16.03.2007 15:39:15
Peter
Hallo Horst,
versuch es einmal so:


Option Explicit
'
'   Die ersten beiden Spalten stellen den Input, die dritte Spalte den
'   gewünschten Output dar.
'   Es geht darum, dass der Output 1 sein soll, sobald in der ersten Spalte
'   eine 1 (Startsignal) steht und solange bis in der zweiten Spalte eine -1
'   (Stoppsignal) steht.
'
Public Sub Spalte_generieren()
Dim lZeile     As Long
Dim iKennzahl  As Integer
   For lZeile = 1 To Range("A65536").End(xlUp).Row
      If Range("A" & lZeile).Value = 1 Then
         iKennzahl = 1
      End If
      If Range("B" & lZeile).Value <> -1 Then
         Range("C" & lZeile).Value = iKennzahl
       Else
         Range("C" & lZeile).Value = iKennzahl
         iKennzahl = 0
      End If
   Next lZeile
End Sub 


Gruß Peter
Anzeige
AW: VBAE die zweite
16.03.2007 15:41:00
gerwas
Hallo Horst
versuchs doch mal hiermit:

Sub sequenz()
Start = False
Stopp = False
k = 1
While Cells(k, 1)  ""
If Cells(k, 1) = 1 And Not Stopp Then Start = True
If Start Then
Cells(k, 3) = 1
Else
Cells(k, 3) = 0
Stopp = False
End If
If Cells(k, 2) = -1 Then
Start = False
Stopp = True
End If
k = k + 1
Wend
End Sub
gruss GerWas
Anzeige
AW: VBAE die zweite
16.03.2007 16:33:00
Erich
Hallo Horst,
das geht auch mit einer einfachen Formel (Formel von C2 nach unten kopieren):
 ABC
1000
20-10
3000
4101
5101
6101
7101
8001
90-11
10101
11001
12001
130-11
140-10
15000
160-10
170-10

Formeln der Tabelle
ZelleFormel
C1=A1
C2=WENN(B1=-1;A2;MAX(A2;C1))
C3=WENN(B2=-1;A3;MAX(A3;C2))

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Problem gelöst!
16.03.2007 20:53:00
Horst
Besten Dank für die VBA-Codes und insbesondere auch für die genial einfache Umsetzung mit der Formel. Habt ihr wirklich gut gemacht!
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige