Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1628to1632
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 Anweisung?

if then Anweisung?
11.06.2018 20:21:25
Eisi
Hallo zusammen,
mit dem Makrorekorder habe ich mir die Copy-Funktion zusammen gebastelt und mit if then kombiniert.
Warum funktioniert die If-Funktion nicht?
Danke für das Feedback.
Sub MakroKopieTest()
If ActiveSheet.Range("C1").Value = "a" Then
Sheets("Tabelle2").Select
Range("A1").Select
Selection.Copy
Sheets("Tabelle1").Select
Range("A5").Select
ActiveSheet.Paste
Range("A1").Select
Else
Sheets("Tabelle2").Select
Range("A2").Select
Selection.Copy
Sheets("Tabelle1").Select
Range("A5").Select
ActiveSheet.Paste
Range("A1").Select
End If
End Sub

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: if then Anweisung?
11.06.2018 20:54:53
Sepp
Hallo Eisi,
warum es nicht funktioniert, weiß ich nicht! Was steht in C1?
Select und Activate ist zu 99.5% unnötig!
Sub MakroKopieTest()
  If Range("C1").Value = "a" Then
    Sheets("Tabelle1").Range("A5") = Sheets("Tabelle2").Range("A1")
  Else
    Sheets("Tabelle1").Range("A5") = Sheets("Tabelle2").Range("A2")
  End If
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: if then Anweisung?
11.06.2018 20:58:27
Gerd
Hallo Eisi!
Sub MakroKopieTest3()
Dim Quelle As Range
Dim Ziel As Range
Set Ziel = Worksheets("Tabelle1").Range("A5")
Set Quelle = Sheets("Tabelle2").Range("A2")
If ActiveSheet.Range("C1").Value = "a" Then
Set Quelle = Worksheets("Tabelle2").Range("A1")
End If
Quelle.Copy Destination:=Ziel
Set Quelle = Nothing
Set Ziel = Nothing
End Sub
Gruß Gerd
AW: if then Anweisung?
11.06.2018 21:14:11
Eisi
Hallo Gerd,
danke für das Feedback. Zuerst hat es nicht funktioniert, ab dann habe ich den Code mit einem Button verbunden und der Code funktioniert doch.
Ich kam gar nicht auf den Gedanken, weil ich immer davon ausgegangen bin, wenn sich der Buchstabe in C1 ändert, wird der Code automatisch ausgeführt werden.
Kann man so etwas im Code einstellen?
Herzlichen Dank für die Unterstützung.
LG Eisi :-)
Anzeige
AW: if then Anweisung?
11.06.2018 21:18:14
Sepp
Hallo Eisi,
in das Modul der Tabelle in der du a/b schreibst. (Rechtsklick auf den Tabellenreiter > Code anzeigen > Code einfügen)
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address(0, 0) = "C1" Then
    If Target = "a" Then
      Sheets("Tabelle1").Range("A5") = Sheets("Tabelle2").Range("A1")
    Else
      Sheets("Tabelle1").Range("A5") = Sheets("Tabelle2").Range("A2")
    End If
  End If
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: if then Anweisung?
11.06.2018 21:01:18
Eisi
Hallo Sepp,
danke für das Feedback.
In C1 schreibe ich entweder a oder b rein.
AW: if then Anweisung?
11.06.2018 21:12:33
Sepp
Hallo Eisi,
und was funktioniert nicht?
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: if then Anweisung?
11.06.2018 21:19:53
Eisi
Hallo Sepp,
Deinen Code habe ich jetzt auch mit dem Button getestet und funktioniert auch. Mir ist aber auch noch aufgefallen, dass meine Textformatierung mit Deinem Code nicht übertragen wird und mit dem Code vom Gerd schon. Somit wäre der Code vom Gerd für mich die bessere Lösung. Aber Deinen Code merke ich mir für andere Gelegenheiten.
Vielen herzlichen Dank.
LG Eisi :-)
AW: if then Anweisung?
11.06.2018 21:37:17
Sepp
Hallo Eisi,
dann halt so.
Microsoft Excel Objekt Tabelle1
Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
  If Target.Address(0, 0) = "C1" Then 
    If Target = "a" Then 
      Sheets("Tabelle2").Range("A1").Copy Sheets("Tabelle1").Range("A5") 
    Else 
      Sheets("Tabelle2").Range("A2").Copy Sheets("Tabelle1").Range("A5") 
    End If 
  End If 
End Sub 

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: if then Anweisung?
11.06.2018 21:56:14
Eisi
Hallo Sepp,
riesen herzlichen Dank. Unbezahlbar Deine Hilfe. :-)
Ich habe den Code im Originalprogramm noch nicht ausprobiert, weil das in der Arbeit liegt.
Aber im Originalprogramm wählt der User über eine Userform Daten aus und daraus ergibt sich dann der Wert a in der Zelle C1, oder auch nicht.
Ich habe es gerade mal hier im Programm mit einer anderen Zelle getestet. Und da ändert sich die TextBox nur, wenn ich direkt in die Zelle C1 den Buchstaben a rein schreibe. Wenn die UserForm den Wert in die Zelle C1 rein schreibt, wird es wohl nicht funktionieren?
Gibt es für diese Aufgabenstellung auch eine Lösung?
Anzeige
AW: if then Anweisung?
11.06.2018 22:04:27
Sepp
Hallo Eisi,
und was kommt dann noch?
Du solltest in Zukunft alle Infos gleich zu Beginn geben!
Du kannst es gleich mit dem Code im UF kombinieren, da ich diesen allerdings nicht kenne, vom Prinzip her so.
Private Sub CommandButton1_Click()
    If TextBox1 = "a" Then
      Sheets("Tabelle2").Range("A1").Copy Sheets("Tabelle1").Range("A5")
    Else
      Sheets("Tabelle2").Range("A2").Copy Sheets("Tabelle1").Range("A5")
    End If
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: if then Anweisung?
11.06.2018 22:24:05
Eisi
Hallo Sepp,
sorry für die Umstände. Das war wirklich keine böse Absicht, mir hat hier eher der Weitblick gefehlt. Aber Du hast recht und ich merke es mir für das nächste Mal.
Den Code werde ich morgen in die UserForm einbauen und hoffe auf keine Schwierigkeiten.
Nochmal herzlichen Dank für Deine riesen Hilfe.
Gute Nach und GLG Eisi :-)
AW: if then Anweisung?
12.06.2018 11:34:52
Eisi
Hallo Mullit,
danke für die Botschaft, nehme ich mir zu Herzen und lese die Seiten.
Vielen Dank.
VG Eisi :-)
AW: if then Anweisung?
12.06.2018 11:46:57
Eisi
Hallo Hans,
Hallo Zusammen,
Sorry, ich schaffe es nicht alleine. :-( (peinlich, peinlich die ganze Fragerei)
Folgende Situation:
1. In der UF wähle ich den OptionButton10 = True aus. Entspricht dem Buchstaben B, der mir ins Sheet Parameter A12 eingetragen wird.
2. Wenn True, soll mir der nachfolgende Code vom Hans (die Zeile mit OptionButton10 habe ich selber eingefügt) aus dem Sheet Einzelkomponenten etwas kopieren und im Sheet Kalkulation_2 wieder einfügen.
Das macht aber der Code nicht.
Der Code steht im Moment im Sheet Kalkulation_2
Andere Varianten habe ich auch schon probiert, aber ohne Erfolg.
Sub OptionButton10_Click()
If OptionButton10.Value = True Then
Sheets("Einzelkomponenten").Range("B43").Copy Sheets("Kalkulation_2").Range("A60")
Else
Sheets("Einzelkomponenten").Range("B45").Copy Sheets("Kalkulation_2").Range("A60")
End If
End Sub
Herzlichen Dank für die Geduld mit mir.
LG Eisi :-)
Anzeige
AW: if then Anweisung?
12.06.2018 12:39:05
Rudi
Hallo,
Der Code steht im Moment im Sheet Kalkulation_2
wenn der Button auf einer UF ist, gehört der Code logischerweise auch in die UF.
Gruß
Rudi
AW: if then Anweisung?
12.06.2018 12:59:01
Eisi
Hallo Rudi,
das hatte ich schon mal ausprobiert, aber dann kommt der Laufzeitfehler 1004 -> Debuggen in der Zeile
"Sheets("Einzelkomponenten").Range("B43").Copy Sheets("Kalkulation_2").Range("A60")".
Sub OptionButton10_Click()
If OptionButton10.Value = True Then
Sheets("Einzelkomponenten").Range("B43").Copy Sheets("Kalkulation_2").Range("A60")
Else
Sheets("Einzelkomponenten").Range("B45").Copy Sheets("Kalkulation_2").Range("A60")
End If
End Sub

Blattschutz? owT
12.06.2018 14:21:11
Rudi
AW: Blattschutz? owT
12.06.2018 14:55:32
Eisi
Nein, im Moment ohne Blattschutz.
AW: if then Anweisung?
12.06.2018 16:22:28
Eisi
Hat jemand eine Ahnung, warum die Fehlermeldung bei "Sheets (..." kommt?
Der Code steht in der UF und die Blätter haben keinen Blattschutz.
Die Fehlermeldung lautet: Laufzeitfehler 1004: Kann Teil einer verbundenen Zelle nicht ändern.
Sub OptionButton10_Click()
If OptionButton10.Value = True Then
Sheets("Einzelkomponenten").Range("B43").Copy Sheets("Kalkulation_2").Range("A60")
Else
Sheets("Einzelkomponenten").Range("B45").Copy Sheets("Kalkulation_2").Range("A60")
End If
End Sub

AW: if then Anweisung?
12.06.2018 17:00:02
Mullit
Hallo,
Die Fehlermeldung lautet: Laufzeitfehler 1004: Kann Teil einer verbundenen Zelle nicht ändern.

na, das sagt doch schon die Fehlermeldung, die Zelle, in die Du was einfügen willst, befindet sich in einem Zellverbund, mußt Du aufheben und gut is...;-)
Gruß, Mullit
AW: if then Anweisung?
12.06.2018 18:19:15
Eisi
Hallo Mullit,
danke für Dein Feedback, aber das habe ich schon überprüft und kann keinen Zellenverbund erkennen.
Aber ich schaue mir das morgen nochmal an, vielleicht habe ich da was übersehen.
VG
Eisi :-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige