Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
852to856
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
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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.

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige