Anzeige
Archiv - Navigation
1716to1720
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

if then Funktion

if then Funktion
27.10.2019 13:42:37
Küchenbulle
Hallo
Ich brauche mal eure Hilfe. Bin selber Laie und Berufsfremd.
Habe hier eine Tabelle zusammengestellt. Für die mir eine „Wenn=Dann“ ( If=Then ) Funktion fehlt. Mit dem Makro Recorder kann ich diese leider nicht aufzeichnen und beim schreiben von Hand unterlaufen mir wiederholt Fehler, so das die Funktion nicht gegeben ist.
Hier ein Beispiel
Sub If_Then() ' If_Then Makro If Range("Z6:AB6").Value = ("x") Then 'Patient1 Range("G6:X6").ClearContents If Range("Z7:AB7").Value = ("1") Then 'Patient2 Range("G7:X7").ClearContents End If End If End Sub
Stelle auch Abbild ins Forum
Ich hoffe das mir Jemand helfen kann.
Wenn in eine Zeile in den Zellen Z6:AB6 ( ROT Umrandet ) ein beliebiges X eingetragen ist, soll das Makro in den Zellen G6:X6 ( BLAU Umrandet ) die Inhalte löschen. Dieses fortgesetzt für die die nächsten 16 Zeilen bis Zeile 22
Ich hoffe das ich mich verständlich ausgedrückt habe und bedanke mich schon mal in voraus für eure Hilfe.
Gruß der Küchenbulle
Userbild

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

Betreff
Datum
Anwender
Anzeige
AW: if then Funktion
27.10.2019 13:53:52
Hajo_Zi
Du bist im falschen Forum. Boldbearbeitung ist ein anderes.
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Schau mal hier
Eine hochgeladene Arbeitsmappe erhöht die Wahrscheinlichkeit, dass Du eine Lösung für Dein Problem erhältst.
Erstelle folglich bitte eine Demomappe, aus der deine Aufgabenstellung klar erkennbar ist und lade diese hoch.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, solltest du diese Daten anonymisieren bzw. pseudonymisieren.
Falls Du den Download des Forums nicht benutzen möchtest beachte bitte: von unsicheren Servern file-upload lade ich keine Datei herunter (lt. Einschätzung meines Virenprogramms)
Das ist nur meine Meinung zu dem Thema.
bei mehtr als eine Zelle CountIf()

Anzeige
wenn Du nicht mehr helfen willst halt Dich raus.
27.10.2019 14:00:23
Matthias
.
AW: if then Funktion
27.10.2019 14:03:21
Matthias
Hallo
Code gehört ins entsprechende Tabellenblatt
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Z6:AB22")) Is Nothing Then
If Target = "x" Then Range("G" & Target.Row & ":X" & Target.Row).ClearContents
End If
End Sub
Wenn in Z-AB ein "x" eingetragen wird werden die Inhalte von G-X in gleicher Zeile gelöscht.
Gruß Matthias
AW: if then Funktion
27.10.2019 14:32:36
Küchenbulle
Bin wie gesagt Laie. Habe Dein Beispiel rüber kopiert und leider wieder eine Fehlermeldung
Userbild
Anzeige
AW: if then Funktion
27.10.2019 14:47:37
Matthias
Hallo
Ich habe geschrieben:
Der Code gehört ins entsprechende Tabellenblatt
Der Fehler tritt bei Dir auf weil Du 1x Option Explicit
innerhalb der Sub stehen hast(so stehts doch auch im Fenster)
Option Explicit steht immer außerhalb der Prozedur ganz oben
und zwingt Dich Variablen zu deklarieren.
Wieso schreibst Du denn Sub Makro1 noch dauzu ?
Kopiere den Code den ich Dir geschrieben habe in Dein entsprecehndes Tabellenblatt
Worksheet_Change ist ein Ereignismakro, welches immer ausgeführt wird wenn eine Zelle geändert wird.
Gruß Matthias
Anzeige
AW: if then Funktion
27.10.2019 17:46:39
Küchenbulle
Als Laie habe ich leider nicht verstanden, Wie und wo ich dieses im Tabellenblatt einbauen muss.
Meine Idee war es in dem folgenden Makro am Ende einzubauen.
Sub Bestellung_abschließen()
'
' Bestellung_abschließen Makro
'
'
ActiveSheet.Unprotect Password:="Castell"
Range("A6:AJ22").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("A6:AJ22").Select
ActiveWorkbook.Worksheets("Tägliche Bestellung").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tägliche Bestellung").Sort.SortFields.Add Key:= _
Range("Z6:Z22"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Tägliche Bestellung").Sort.SortFields.Add Key:= _
Range("AA6:AA22"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
ActiveWorkbook.Worksheets("Tägliche Bestellung").Sort.SortFields.Add Key:= _
Range("AB6:AB22"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
ActiveWorkbook.Worksheets("Tägliche Bestellung").Sort.SortFields.Add Key:= _
Range("Ac6:Ac22"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortNormal
With ActiveWorkbook.Worksheets("Tägliche Bestellung").Sort
.SetRange Range("A6:AJ22")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A6:F6").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("AC6:AJ6").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("A6:F6").Select
Selection.Copy
Range("A7:F22").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("AC6:AJ6").Select
Selection.Copy
Range("AC7:AJ22").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWindow.SmallScroll Down:=6
Range("A31:AJ32").Select
Selection.Copy
ActiveWindow.SmallScroll Down:=-9
Range("A6:AJ22").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

Hier sollte der entsprechende Makro Baustein hin. 

ActiveSheet.Protect Password:="Castell"
End Sub
Das ganze soll für die Anwender Idiotensicher sein, da es auch Leute gibt, die Angst haben einen Computer überhaupt ein zu Schalten
Anzeige
AW: if then Funktion
27.10.2019 18:52:28
Matthias
Hallo
Zitat
Als Laie habe ich leider nicht verstanden, Wie und wo ich dieses im Tabellenblatt einbauen muss.
Na Du hast doch Deinen Code auch irgendwo stehen, oder?
Wie hast Du das denn gamacht?
Rechtsklick auf die entsprechende Tabelle unten im Register - dann Code anzeigen auswählen
Dort kopierst Du meinen übermittelten Code rein.
In meinem Bsp ist es die Tabelle1
Wenn Du jetzt im gelben Bereich irgendwo ein "x" einträgst
wird im grünen Bereich die entsprechende Zeile geleert.
Tabelle1

 GHIJKLMNOPQRSTUVWXYZAAAB
6xxxxxxxxxxxxxxxxxx    
7xxxxxxxxxxxxxxxxxx    
8xxxxxxxxxxxxxxxxxx    
9xxxxxxxxxxxxxxxxxx    
10                    x 
11xxxxxxxxxxxxxxxxxx    
12xxxxxxxxxxxxxxxxxx    
13xxxxxxxxxxxxxxxxxx    
14                     x
15xxxxxxxxxxxxxxxxxx    
16xxxxxxxxxxxxxxxxxx    
17xxxxxxxxxxxxxxxxxx    
18                   x  
19xxxxxxxxxxxxxxxxxx    
20xxxxxxxxxxxxxxxxxx    
21xxxxxxxxxxxxxxxxxx    
22xxxxxxxxxxxxxxxxxx    


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Matthias
Anzeige
AW: if then Funktion
27.10.2019 19:18:23
Küchenbulle
Danke
Wieder was Gelernt.
Funktion ist soweit gegeben.
Leider gibt es noch Fehlermeldungen wenn ich im Bereich ("Z6:AB22") die "x" wieder Lösche oder beim ausführen des Makros.
Userbild
Userbild
AW: if then Funktion
27.10.2019 19:55:40
Matthias
Hallo
die "x" wieder Lösche
Nun dann hast Du mehrere Zellen markiert und willst sie auf einmal löschen.
Dann mach es so:
If Target.Count = 1 Then
If Not Intersect(Target, Range("Z6:AB22")) Is Nothing Then
If Target = "x" Then Range("G" & Target.Row & ":X" & Target.Row).ClearContents
End If
End If
Gruß Matthias
Anzeige
AW: if then Funktion
28.10.2019 11:49:10
Küchenbulle
Hallo Matthias
Danke für deine Hilfe.
Habe den Letzten Fehler (Laufzeitfehler 13)behoben.
Userbild
On Error Resume Next ' Fehlerbehandlung ausschalten
On Error GoTo 0 ' Fehlerbehandlung wieder einschalten
Jetzt läuft es ohne Fehlermeldung
Ich hoffe das auch andere aus unserer Kommunikation noch etwas lernen können.
Nochmals Herzlichsten Dank
AW: Offen für Frage an die Forum Kollegen
29.10.2019 20:42:26
Piet
Hallo Matthias
ich habe eine rein technische Frage an die Kollegen, weil ich darin nicht Wissend bin!!
Kann der Fehler daran liegen, weil er im Code als Inersect Bereich die Spalte "Z" angibt, aber beim löschen mit Spalte "G" beginnt? - Intersect(Target, Range("Z6:AB22"))
Range("G" & Target.Row & ":X" & Target.Row).ClearContents
Ist das für Excel unvertraeglich? - Dann waere diese Fehlermeldung auch geklaert!!
Thread bitte wieder schliessen, ist ja erledigt ...
mfg Piet
Anzeige
AW: Offen für Frage an die Forum Kollegen
29.10.2019 22:17:11
Werner
Hallo Piet,
nein liegt nicht daran.
Bei einer Mehrfachauswahl ist Intersect ein Zellbereich und den kannst du ja nicht mit einem Wert gegenprüfen.
Das geht ja nicht:
If Range("A1:A10") = "x" Then

Lösung Schleife über den Zellbereich
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Z6:AB22")) Is Nothing Then
For Each Target In Intersect(Target, Range("Z6:AB22"))
If Target = "x" Then Range("G" & Target.Row & ":X" _
& Target.Row).ClearContents
Next Target
End If
End Sub
Gruß Werner
Anzeige
AW: Offen für Frage an die Forum Kollegen
30.10.2019 17:37:37
Piet
Hakko Werner
mit Intersect habe ich keine Erfahrung, jetzt weiss ich wieder ein bisschen mehr. Danke ...
mfg Piet
Gerne. o.w.T
30.10.2019 20:19:40
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige