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

wenn oder ausgabe

wenn oder ausgabe
Sascha
Hallo Excel Forum
sitze mal wieder vor einem Problem und hoffe das ich es richtig erkläre ist ja nicht immer einfach.
Ich habe Zwei Excel Blätter Blatt 1 Küche Blatt zwei kupro.
Es soll in Küche ab E7 bis E300 eine Ausgabe erfolgen durch wenn Ereignisse.
1. Wenn in Spalte Küche J ; K oder L keine Zahl ist dann soll von dem Tabellenblatt kupro aus der Spalte J die Zahl in Küche Spalte E eingefügt werden.
2. Wenn in Spalte Küche J die Zahl 3 steht dann soll von dem Tabellenblatt kupro aus der Spalte Q die Zahl in Küche Spalte E eingefügt werden.
3. Wenn in Spalte Küche K die Zahl 4 steht dann soll von dem Tabellenblatt kupro aus der Spalte V die Zahl in Küche Spalte E eingefügt werden.
4. Wenn in Spalte Küche L die Zahl 5 steht dann soll von dem Tabellenblatt kupro aus der Spalte L die Zahl in Küche Spalte E eingefügt werden.
Wenn andere Zahlen in die Spalten J ; K oder L eingetragen werden wer es cool noch eine MessageBox auszugeben mit Fehler Info.
Hoffe das ich es erklärlich beschrieben habe.
https://www.herber.de/bbs/user/70014.zip
Danke schon mal für eure Mühe
Sascha

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: wenn oder ausgabe
12.06.2010 07:17:47
BoskoBiati
Hallo Sascha,
wenn Deine Werte so in den Zellen stehen sollen, wie Du es dargestellt hast, dann wird es aufwändig. hier mal eine leicht veränderte Form:
 EFGHIJKL
5  Ja: 1  auto:rad:fuß:
6456 Jaein: 2  345

ZelleFormel
E6{=WENN((J6="")*(K6="")*(L6="");kupro!J7;WAHL(MIN(WENN(Küche!J6:L6>"";SPALTE(J6:L6)-9));kupro!Q7;kupro!V7;kupro!Z7))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.

ZelleGültigkeitstypOperatorWert1Wert2
J6Benutzerdefiniert =J6=3 
K6Benutzerdefiniert =K6=4 
L6Benutzerdefiniert =L6=5 
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Gruß
Bosko
Anzeige
Code etwas umgeschrieben
12.06.2010 09:43:35
Erich
Hi Thorsten,
ich habe mir erlaubt, deinen Code etwas umzuschreiben. Wie gefällt es dir?

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bolMsg As Boolean
If Intersect(Target, Range("J6:L6")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
With Sheets("kupro")
If Range("J6").Value & Range("K6").Value & Range("L6").Value = "" Then
Range("E7:E300").Value = .Range("J7").Value
Else
Select Case Target.Address(0, 0)
Case "J6"
If Target.Value = 3 Then
Range("K6:L6").ClearContents
Range("E7:E300").Value = .Range("Q7").Value
ElseIf Not IsEmpty(Target) Then
bolMsg = True
End If
Case "K6"
If Target.Value = 4 Then
Range("J6,L6").ClearContents
Range("E7:E300").Value = .Range("V7").Value
ElseIf Not IsEmpty(Target) Then
bolMsg = True
End If
Case "L6"
If Target.Value = 5 Then
Range("J6:K6").ClearContents
'meinst du für den Wert 5 wirklich die Spalte L aus kupro,
'oder meinst du dann vllt Spalte Z?
'Range("E7:E300").Value = .Range("L7").Value
Range("E7:E300").Value = .Range("Z7").Value
ElseIf Not IsEmpty(Target) Then
bolMsg = True
End If
End Select
End If
End With
If bolMsg Then
Range("E7:E300").ClearContents
MsgBox "Geben Sie bitte einen gültigen Wert ein.", _
vbExclamation, "falscher Wert"
End If
Application.EnableEvents = True
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Code etwas umgeschrieben
12.06.2010 09:56:46
Oberschlumpf
Moin Erich
Ja, danke, dein Code is gut!
Vor allem die Einschränkung, dass NIX passiern soll, wenn mehr als 1 Zelle markiert ist/bearbeitet wird.
(das vergesse ich immer wieder, wenn ich Konstrukte wie dieses erstelle)
by the way
Kennst du den Unterschied zwischen
Range("A1").Value = ""
und
Range("A1").ClearContents
?
Inm Ergebnis sehe ich keinen Unterschied - gibt es vllt auch gar nicht - hier gilt wohl auch nur die "Weisheit": "Mehrere Wege führen nach (VBA)Rom...hehe
Oder gibt es wirklich einen Unterschied?
Ciao
Thorsten
wohl kein Unterschied
12.06.2010 10:59:35
Erich
Hi Thorsten,
da scheint es wirklich keinen Unterschied zu geben. Ich musste das auch erst mal prüfen.
Probier das mal:

Sub aaa()
Cells(1, 1).Resize(4).NumberFormat = "General"
Cells(1, 1).Formula = "="""""
Cells(2, 1) = " "
Cells(3, 1) = ""
Cells(4, 1).ClearContents
Cells(1, 1).Resize(4).NumberFormat = "xxx@"
End Sub
Zwischen A3 und A4 finde ich keinen Unterschied.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
doch ein Unterschied
12.06.2010 17:32:19
Erich
Hi Thorsten,
hier zeigt sich doch ein Unterschied:

Sub bbb()
Cells(1, 1).Resize(2).NumberFormat = "xxx@"
Cells(1, 1) = ""
Cells(2, 1).ClearContents
End Sub
Schönes Rest-Wochenende!
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
etwas anderst
13.06.2010 00:12:31
Sascha
Hallo
BokoBiati
Oberschlumpf
Erich G.
Die Beispiele die ihr gemacht habt waren schon richtig cool.
Das Beispiel von BokoBiati hab ich auch schon probiert aber das ganze war dann zu komplex das es so nicht Funktioniert hat Leider.
Die Beispiele von Oberschlumpf und Erich G. sind fast so wie ich es mir erträumt habe.
Hab zur Erklärung der Sache noch mal eine Excel Datei gemacht und dort ein Paar Kommentare und Beispiele eingefügt zur besseren Erklärung
https://www.herber.de/bbs/user/70028.zip
Danke für eure Mühe
Gruß Sascha
Anzeige
heftig anders
13.06.2010 11:04:37
Erich
Hi Sascha,
das sieht aber doch erheblich anders aus. Probier mal

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngC As Long, lngZ As Long, cc As Long
If Intersect(Target, Range("J7:L300")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
lngZ = Target.Row      ' 7 bis 300
lngC = Target.Column   ' 10, 11, 12
With Sheets("kupro")
If IsEmpty(Target) Then
Cells(lngZ, 5) = .Cells(lngZ, 10)
Else
If Target.Value = Target.Column - 7 Then ' prüfe auf 3,4,5
For cc = 10 To 12
If cc  lngC Then Cells(lngZ, cc).ClearContents
Next cc
Cells(lngZ, 5) = _
.Cells(lngZ, Application.Choose(lngC - 9, 17, 22, 26))
Else
Cells(lngZ, 10).Resize(, 3).ClearContents
MsgBox "Geben Sie bitte einen gültigen Wert ein.", _
vbExclamation, "falscher Wert"
End If
End If
End With
Application.EnableEvents = True
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
heftig anders fast gelöst
13.06.2010 16:14:04
Sascha
Hallo Erich G.
Danke für die Lösung
Das erklären ist immer etwas schwer bei so was komplexem aber du hast es verstanden und auch super gelöst.
Hab nun noch ein Problem und zwar wird in G die Zahl 1 oder 2 eingegeben und dadurch ändern sich die Zahlen in kupro. Aber leider wird die Zahl dann nicht in E Aktualisiert.
Gruss Sascha
Rückfragen
13.06.2010 19:07:03
Erich
Hi Sascha,
das verstehe ich jetzt gar nicht. Du müsstest das wohl etwas präziser schreiben.
Auf welchem Blatt wird in G (G7:G300 ?) etwas eingegeben?
Kann da wahlweise 1 oder 2 eingegeben werden?
"ändern sich die Zahlen in kupro": Welche Zahlen ändern sich, wie passiert das?
Stehen in kupro!J7:J300, kupro!Q7:Q300, kupro!V7:V300, kupro!Z7:Z300 vielleicht Formeln?
Dann wäre es evtl. geschickter, die Werte in Küche!E7:E300 gleich per Formeln zu ermitteln,
ohne VBA. Dann werden die Werte auch automatisch aktualisiert.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Rückfragen Antwort
13.06.2010 20:49:43
Sascha
Hallo Erich G.
Habe mal ein Beispiel angehängt zur besseren Erklärung und um es mal zu testen.
https://www.herber.de/bbs/user/70037.zip
Grüsse Sascha
Bedaure
14.06.2010 09:55:31
Erich
Hi Sascha,
einige meiner Fragen habe ich mir anhand der Mappe selbst beantworten können,
teilweise bin ich auf Vermutungen angewiesen.
Ein wenig mehr an verständlicher Erklärung wäre schon gut gewesen...
So vermute ich, dass du die Eingaben 1 oder 2 im Bereich Küche!G7:G300 meinst,
nicht in Monatsübersicht!G8:G304.
In Küche!E7:E300 stehen Formeln, die aber vom Worksheet_Change() mit Zahlen überschrieben werden,
so dass sich eine Änderung in Küche!G7:G300 nicht mehr auf Küche!E7:E300 auswirken kann.
Besser würdest du hier wohl nur mit Formeln arbeiten.
Tiefer möchte ich da nicht einsteigen, das ist mir zu unübersichtlich, es gäbe zu viel zu tun.
Zwei Tipps nebenbei:
- Wenn in eine Zelle ohnehin nur ein oder zwei Werte eingegeben werden dürfen, bietet es sich an,
die Eingabe per "Daten - Gültigkeit" zu prüfen. Dann braucht man keine VBA-Prüfung mit MsgBox mehr.
- In kupro:AE7:AE300 stehen 294 Formeln wie
=AF7+AG7+AH7+AI7+AJ7+AK7+AL7+AM7+AN7+AO7+AP7+AQ7+AR7+AS7 +AT7+AU7+AV7+AW7+AX7+AY7+AZ7+BA7+BB7+BC7+BD7+BE7+BF7+BG7
Warum nicht einfach =SUMME(AF7:BG7)?
Vielleicht möchte jemand anders hier einsteigen - ich stelle deshalb den Thread auf "offen".
Grüße von Erich aus Kamp-Lintfort
P.S.: Ich heiße einfach Erich. "Erich G." ist hier nur mein Username zum besseren Wiederfinden.
Anzeige
Neue Hoffnung
14.06.2010 22:05:48
Sascha
Hallo Erich und Forum
Hab die Frage zu schnell online gestellt hab mich heute hingehockt und es im Excel Beispiel noch mal versucht zu erklären, mit Kommentaren und Text in der Excel.
Das in der Excel Datei nicht alles Paßt weis ich aber sowas umfangreiches mache ich zum aller ersten mal.
Deine Tipps habe ich gleich geändert und aus =AF7+AG7+AH7+A........... wurde =SUMME(AG7:BH7).
"""In Küche!E7:E300 stehen Formeln, die aber vom Worksheet_Change() mit Zahlen überschrieben werden,
so dass sich eine Änderung in Küche!G7:G300 nicht mehr auf Küche!E7:E300 auswirken kann.
Besser würdest du hier wohl nur mit Formeln arbeiten.
""""
Das War ein Test für die Frage die ich ja habe aber Leider ohne Erfolg wurde wieder gelöscht.
Da ich mich nicht so gut auskenne mit den Excelmöglichkeiten Probier ich immer etwas rum und stelle darum vielleicht auch etwas Dumme Fragen.
Das mit der Gültigkeitsprüfung kenne ich auch noch nicht und weis auch nicht wie ich das einbauen kann.
Bin zu neu in dem Gebiet und hab zu wenig Zeit um es schneller zu lernen.
https://www.herber.de/bbs/user/70054.zip
Grüsse Sascha
Anzeige
Kleine Änderung zum Erfolg HILFE
17.06.2010 21:42:02
Sascha
Hallo Erich und Forum
Hab eine Fast Lösung zu meinem Problem und brauch noch eine kleine Änderung von deinem Makro.
Mein CODE
=WENN(J7=3;kupro!Q7;WENN(K7=4;kupro!V7;WENN(L7=5;kupro!AA7;WENN(J7=0;kupro!J7;WENN(K7=0;kupro!J7; WENN(L7=0;kupro!J7))))))
Erich Makro
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngC As Long, lngZ As Long, cc As Long
If Intersect(Target, Range("J7:L300")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
lngZ = Target.Row      ' 7 bis 300
lngC = Target.Column   ' 10, 11, 12
With Sheets("kupro")
If IsEmpty(Target) Then
Cells(lngZ, 5) = .Cells(lngZ, 10)
Else
If Target.Value = Target.Column - 7 Then ' prüfe auf 3,4,5
For cc = 10 To 12
If cc  lngC Then Cells(lngZ, cc).ClearContents
Next cc
Cells(lngZ, 5) = _
.Cells(lngZ, Application.Choose(lngC - 9, 17, 22, 26))
Else
Cells(lngZ, 10).Resize(, 3).ClearContents
MsgBox "Geben Sie bitte einen gültigen Wert ein.", _
vbExclamation, "falscher Wert"
End If
End If
End With
Application.EnableEvents = True
End Sub
Das Makro Setzt in Spalte E Kupro!J wenn in J; K; L; nichts drin steht.
Kann man Makro soweit ändern das es die Spalten J; K; L; überwacht auf die Zahlen 3; 4; 5;
und die Spalte E nicht berührt dann kann ich dort meinen Code reinschreiben.
Hoffe ihr könnt mir helfen und ich komme mit meiner Excel weiter.
Gruss Sascha
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige