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

Makro: Wenn dann

Makro: Wenn dann
26.03.2009 12:47:12
Julia
Hallo in meiner xls siehe:
https://www.herber.de/bbs/user/60693.xls
sind die Spalten A bis C gegeben
Wie kann ich den gelben Bereich (Spalte D) per Makro auffülen
Immer den letzten Status in Spalte C (nach...) in die entsprechende Zelle von Spalte D (Aktueller Status) zu schreiben
Ich brächte dazu ein Makro welches diese Aktion im Tabellenblatt Datenbasis durchführt
Die Anzahl der Vorgänge ist immer variabel. Das Makro soll also bis zur letzten gefüllten Zeile in Spalte A arbeiten

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: Wenn dann
26.03.2009 12:52:51
Mike
Hey Julia,
ist es gezwungen ein Makro? Mittels Formel:
Datenbasis

 ABCD
5Vorgang-111AbschlussWiedergeöffnet 
6Vorgang-111WiedergeöffnetAbschlussAbschluss
7Vorgang-110OffenIn BearbeitungIn Bearbeitung
8Vorgang-109OffenIn Bearbeitung 
9Vorgang-109In BearbeitungAbschlussAbschluss
10Vorgang-108OffenPrüfung 
11Vorgang-108PrüfungAbschlussAbschluss

Formeln der Tabelle
ZelleFormel
D5=WENN(A5<>A6; C5; "")
D6=WENN(A6<>A7; C6; "")
D7=WENN(A7<>A8; C7; "")
D8=WENN(A8<>A9; C8; "")
D9=WENN(A9<>A10; C9; "")
D10=WENN(A10<>A11; C10; "")
D11=WENN(A11<>A12; C11; "")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruss
Mike
Anzeige
AW: Makro: Wenn dann
26.03.2009 12:54:41
Julia
Brauch das als Makro :(
In der Originaltabelle sind es über 20 000 Einträge
Irgendwie machbar?
AW: Makro: Wenn dann
26.03.2009 12:59:41
Oberschlumpf
Hi Julia
Versuch das hier:
Sub sbStatus() Dim loZeile As Long For loZeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row If Range("A" & loZeile).Value Range("A" & loZeile + 1).Value Then Range("D" & loZeile).Value = Range("C" & loZeile).Value End If Next End Sub


Voraussetzung für den Code:
- die Daten stehen auch in der Originaldatei in den Spalten, wie in der Bsp-Datei
- Daten sind nach Spalte A sortiert
Hilfts?
Ciao
Thorsten

Anzeige
AW: Makro: Wenn dann
26.03.2009 13:05:49
Julia
Klappt Perfekt,
habs leicht angepasst da der aktuelle Status bei mir in Spalte J steht
Klappt jetzt prima
eine Kleinigkeit hätte ich noch. Wie kann ich in Spalte J den Status "alt Belegt" in "Offen" abändern
Kann man das in dieses Makro noch einbauen?
AW: Makro: Wenn dann
26.03.2009 13:12:14
Oberschlumpf
Hi Julia
Auch ich bin keine Maschine.
Ich lese dich hier öfters. Also kann ich davon ausgehen, dass auch dir die Bitte, jeden Beitrag mit einer Begrüßung zu beginnen, bekannt sein sollte.
Bau als 2. Bedingung das hier ein (ungetestet):

If Range("D" & loZeile).Value  "" And Range("D" & loZeile).Value = "alt Belegt" Then
Range("D" & loZeile).Value = "Offen"
End If


Hilfts?
Ciao
Thorsten

Anzeige
AW: Makro: Wenn dann
26.03.2009 13:22:17
Julia
Sorry Thorsten wenn ich die Begrüßung vergessen habe.
Also der Code funzt 1A. Ich habe in einer anderen Mapper einen Button mit dem ich diesen Code ausführe:

Sub aktuellen_Status_ermitteln()
Dim loZeile As Long
With Sheets("Datenbasis")
.Range("J1") = "aktueller Status"
For loZeile = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Range("A" & loZeile).Value  Range("A" & loZeile + 1).Value Then
Range("J" & loZeile).Value = Range("F" & loZeile).Value
End If
Next
End With
End Sub


Führe ich diesen Code über den Button aus macht er mir nur die Überschrift in J1. Mehr nicht. Führe ich das Makro seperat auf klappt alles prima.
Hier der Code vom Button:


Sub alles_aktualisieren()
Call Tage_berechnen
Call aktuellen_Status_ermitteln
MsgBox "Aktualisierung erfolgreich abgeschlossen!", , "Status Reporting ICeD"
End Sub


Anzeige
AW: Makro: Wenn dann
26.03.2009 13:35:33
Oberschlumpf
Hi Julia
Ändere den entsprechenden Code wie folgt:

For loZeile = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Range("A" & loZeile).Value  .Range("A" & loZeile + 1).Value Then
.Range("J" & loZeile).Value = .Range("F" & loZeile).Value
End If
Next


Dein Code bezieht sich mit allen Zeilen ohne voranstehenden Punkt auf das aktuelle Tabellenblatt.
Der neue Code bezieht sich mit dem voranstehenden Punkt auf das Tabellenblatt "Datenbasis", welches durch With "Datenbasis" vorgegeben wird.
Auch die Codezeilen, die den Wert "alt Belegt" in "Offen" ändern sollen, musst du anpassen (Punkt voranstellen)
Hilfts?
Ciao
Thorsten

Anzeige
AW: Makro: Wenn dann
26.03.2009 13:42:48
Julia
GENIAL
VIELEN DANK!!!!
AW: Makro: Wenn dann
26.03.2009 13:57:35
Julia
Hi Thorsten sorry wenn ich mich nochmal melde aber iwie krieg deinen Vorschlag:
If Range("J" & loZeile).Value "" And Range("J" & loZeile).Value = "alt Belegt" Then
Range("J" & loZeile).Value = "Offen"
End If
in das ganze Makro mit rein?

Sub aktuellen_Status_ermitteln()
Dim loZeile As Long
With Sheets("Datenbasis")
.Range("J1") = "aktueller Status"
For loZeile = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Range("A" & loZeile).Value  .Range("A" & loZeile + 1).Value Then
.Range("J" & loZeile).Value = .Range("F" & loZeile).Value
End If
Next
End With
End Sub


Anzeige
AW: Makro: Wenn dann
26.03.2009 14:04:40
Oberschlumpf
Hi Julia
So:

For loZeile = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Range("A" & loZeile).Value  .Range("A" & loZeile + 1).Value Then
.Range("J" & loZeile).Value = .Range("F" & loZeile).Value
End If
If .Range("D" & loZeile).Value  "" And .Range("D" & loZeile).Value = "alt Belegt" Then
.Range("D" & loZeile).Value = "Offen"
End If
Next


Gehts?
Ciao
Thorsten

AW: Makro: Wenn dann
26.03.2009 14:20:31
Julia
Perfekt jetzt klappt alles
Vielen Vielen Dank!!!

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige