Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
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

VBA IF Else..

VBA IF Else..
09.07.2021 15:05:03
Mullins2003
Hallo zusammen,
ich habe hier ein VBA Problem bei dem ich den Ausweg nicht finde =/
Ich würde mich freuen, wenn jemdand von euch einen Lösungsvorschlag hätte.
In meiner Excel gibt es zwei Buttons;
Der Erste enthält eine MsgBox mit Namensabfrage, kopiert ein Tabellenblatt und zwei Zeilen, fügt diese Zeile unter Berücksichtigung des eingegebenen Namens auf dem ersten Tabellenblatt ein und stellt das kopierte Tabllenblatt an das Ende der Mappe.
Der zweite Button soll prüfen, ob der Name aus dem ersten Button existiert, wenn ja soll ebenfalls eine Zeile UNTER der Zeile mit dem Namen eingefügt werden, wenn nicht dann MsgBox mit Errormeldung
Die restliche Funktionalität des Buttons ist analog dem Ersten.
Der Code dafür lautet bisher:

NameNeuesProjekt = "Neu"
NameNeuesProjekt = InputBox("Unter welchem Innnovationsfeld soll das Projekt angelegt werden?")
' Wenn der Name des Innovationsfeldes exisitiert - soll das Projekt in der Zeile unter dem vorhandenen Innovationsfeld eingefügt werden, ansonsten Fehlermeldung; Innovationsfeld nicht vorhanden
NameNeuesProjekt2 = "Neu"
NameNeuesProjekt2 = InputBox("Wie heißt das neue Projekt?")
ThisWorkbook.Sheets("OBEYA").Rows(13).Copy
For LetzteZeile = 13 To 10000
If ThisWorkbook.Sheets("OBEYA").Cells(LetzteZeile, "C").Value = "" Then
If ThisWorkbook.Sheets("OBEYA").Cells(LetzteZeile, "C").Value = "" Then
LetzteZeile = LetzteZeile + 0
ThisWorkbook.Sheets("OBEYA").Rows(LetzteZeile).EntireRow.PasteSpecial Paste:=xlAll
ThisWorkbook.Sheets("OBEYA").Cells(LetzteZeile, "C").Value = NameNeuesProjekt2
Exit For
End If
End If
Next
Wie ist der korrekte Code für die Überprüfungsschleife IF... Else und das Einfügen in der "richtigen" Zeile und nicht in der letzten des Buttons 2?
Viele Grüße und Danke,
Alex

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

Betreff
Datum
Anwender
Anzeige
AW: VBA IF Else..
09.07.2021 16:19:26
Hajo_Zi
Hallo Alex,
warum 2x
If ThisWorkbook.Sheets("OBEYA").Cells(LetzteZeile, "C").Value = "" Then
If ThisWorkbook.Sheets("OBEYA").Cells(LetzteZeile, "C").Value = "" Then
einmal reicht.
Die Frage zu else habe ich nicht verstanden.
GrußformelHomepage
AW: VBA IF Else..
09.07.2021 16:20:58
ChrisL
Hi
Ich denke du kannst die zwei Button zusammenfassen:

Sub t()
Dim NameNeuesProjekt2 As String, lngAnzahl As Long, lngZeile As Long
NameNeuesProjekt2 = InputBox("Wie heißt das Projekt?")
If NameNeuesProjekt2 = "" Then Exit Sub
With Worksheets("OBEYA")
lngAnzahl = WorksheetFunction.CountIf(.Range("C14:C" & Rows.Count), NameNeuesProjekt2)
If lngAnzahl Then
'Projekt exisitert bereits
lngZeile = Application.Match(NameNeuesProjekt2, .Range("C14:C" & Rows.Count), 0) + lngAnzahl + 13
.Rows(lngZeile).Insert
Else
'Projekt neu anlegen
lngZeile = .Cells(Rows.Count, 3).End(xlUp).Row + 1
End If
.Rows(13).Copy
.Rows(lngZeile).PasteSpecial Paste:=xlAll
.Cells(lngZeile, 3) = NameNeuesProjekt2
End With
Application.CutCopyMode = False
End Sub
cu
Chris
Anzeige
AW: VBA IF Else..
10.07.2021 19:55:40
Mullins2003
Hi Chris,
vielen lieben Dank für Deine Antwort. Ich habe viel rumprobiert, aber es hat noch nicht ganz funktioniert.
Die Buttons können nicht zusammen gelegt werden.
Es werden erst Felder angelegt (Button 1) und im Verlauf der Zeit kommen Projekte jeweils unter den Feldern hinzu.
Mit Button 1 wird das "Template Innofeld" kopiert und mit Button 2 dann nach Bedarf das "Template Projekt"
Die Suchschleife müsste denke ich darum auch nach dem "Innovationsfeld" aus Button 1 suchen, oder täusche ich mich da?

Dim NameNeuesInnovationsfeld    As String
lngAnzahl = WorksheetFunction.CountIf(.Range("C14:C" & Rows.Count), NameNeuesProjekt2)
If lngAnzahl Then
'Projekt Innovationsfeld  exisitert bereits 'NameNeuesInnovationsfeld'
lngZeile = Application.Match(NameNeuesProjekt2, .Range("C14:C" & Rows.Count), 0) + lngAnzahl + 13
.Rows(lngZeile).Insert
Ich habe die Datei nocheinmal hochgeladen mit nun 3 Feldern.
Liebe Grüße und Danke,
Alex
Anzeige
keine datei !!! owt
10.07.2021 21:08:48
ralf_b
AW: keine datei !!! owt
12.07.2021 10:09:17
ChrisL
Hi
Die Datei ist sicherlich hilfreich. Leider kann ich keine xlsm-Formate downloaden (liegt an mir und nicht an dir). Ich markiere die Frage deshalb offen.
cu
Chris
AW: keine datei !!! owt
12.07.2021 13:49:48
Mullins2003
Hi Chris,
trozdem vielen Dank =)
Ich habe die Datei nun nochmal als .xlsx hochgeladen der Code steht entsprechend in der Datei.
https://www.herber.de/bbs/user/147069.xlsx
Viele Grüße und Danke
Alex
Anzeige
AW: keine datei !!! owt
13.07.2021 13:00:17
ChrisL
Hi Alex
Zeilen 1031:1034 bitte löschen.
Hier mal was zum Starten:

Sub neuesInnovationsfeld()
Dim NameNeuesInnovationsfeld As String, letzteZeile As Long
NameNeuesInnovationsfeld = InputBox("Wie heißt das neue Innovationsfeld?")
If NameNeuesInnovationsfeld = "" Then Exit Sub
With Worksheets("OBEYA")
If WorksheetFunction.CountIf(.Columns(3), NameNeuesInnovationsfeld) Then
MsgBox NameNeuesInnovationsfeld & " existiert bereits. Abbruch."
Else
letzteZeile = .Cells(Rows.Count, 3).End(xlUp).Row
.Rows("14:16").Copy
.Rows(letzteZeile + 1).Insert Shift:=xlDown
.Cells(letzteZeile + 2, 3) = NameNeuesInnovationsfeld
.Cells(letzteZeile + 3, 3) = NameNeuesInnovationsfeld
Application.DisplayAlerts = False
Sheets("Template Innofeld").Copy After:=Sheets(Sheets.Count)
Application.DisplayAlerts = True
Sheets(Sheets.Count).Name = NameNeuesInnovationsfeld
End If
End With
End Sub

Sub neueProjekt()
Dim NameNeuesProjekt As String, NameInnovationsfeld As String, letzteZeile As Long
NameNeuesProjekt = InputBox("Wie heißt das neue Projekt?")
If NameNeuesProjekt = "" Then Exit Sub
NameInnovationsfeld = InputBox("Wie heißt das neue Innovationsfeld?")
If NameInnovationsfeld = "" Then Exit Sub
With Worksheets("OBEYA")
If WorksheetFunction.CountIf(.Columns(3), NameInnovationsfeld) = 0 Then
MsgBox NameInnovationsfeld & " existiert nicht. Abbruch."
Else
letzteZeile = Application.Match(NameInnovationsfeld, .Columns(3), 0)
.Rows("13:13").Copy
.Rows(letzteZeile + 2).Insert Shift:=xlDown
.Cells(letzteZeile + 2, 3) = NameNeuesProjekt
End If
End With
End Sub
cu
Chris
Anzeige
AW: keine datei !!! owt
14.07.2021 10:12:39
Mullins2003
Hi Chris mein lieber,
1000 Dank, das funktioniert alles reibungslos =)!!
Und ich sehe ich kann noch viel lernen :)
Zu Deinen Anmerkungen;
Ja, Obeya ist terminologisch nicht 100% passgenau, der Name kommt aus einer Historie und wurde von mir nur wunschgemäß übernommen.
Zu den Auswertungsaspekten stimme ich Dir ebenfalls zu. Das lässt sich datentechnisch viel effizienter gestalten.
Die Tabelle ist eine Übersicht für mehrere Beteiligte denen die Optik sehr wichtig ist.
Die Tabelle hier ist zudem stark reduziert. In den richtigen Templates Tabellenblätter finden sich noch sehr viele zusätzliche Informationsfelder die auf die Obeya verknüpft sind.
LG und Danke,
Alex
Anzeige
AW: keine datei !!! owt
14.07.2021 13:01:04
ChrisL
Danke für die Rückmeldung. Hauptsache es passt... ;)
AW: keine datei !!! owt
13.07.2021 17:32:07
ChrisL
übrigens noch eine kleine Anmerkung...
Die Darstellung ist zwar hübsch, aber "Datentechnisch" m.E. ungünstig. Im Idealfall beschränkst du dich auf eine zentrale Datenbank-ähnliche Übersicht zur Datenerfassung. Alles weitere ist nur noch Auswertung/Visualisierung. Beispiel:
Spalte A: Innovationsfeld
Spalte B: Projektname
Spalte C: Teilprojekt
Spalte D: Status etc.
Die Darstellung ermöglicht es zu sortieren, filtern und lässt sich einfach auswerten.
Eine dezentrale Datenerfassung (auf Einzelblättern) lässt sich nur sehr umständlich auswerten (z.B. alle offenen (Teil-)projekte filtern). Die Synchronisation mit dem Übersichtsblatt ist mehr als herausfordernd, wenn du sowohl zentral wie dezentral Eingaben zulässt.
Hiernach scheint der Begriff OBEYA für deine Verwendung (u.a. Progress-Tracking) übrigens unpassend.
https://planet-lean.com/obeya-tool-discovery/
An obeya is not another project management tool. The goal is neither to review progress nor to prioritize features. The goal is rather to think deeply, to talk, to argue about the main issues of the project. It’s a space for discovery.
Anzeige

118 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige