ich wollte heute an meinem freien Tag einfach ein bisschen mit VBA rumspielen, aber leider kriege ich die Aufgabe nicht hin. Habe 2 Ordner, wenn ich bei Ordner 1 mit dem Dropdown Ja anklicke, soll von Ordner 2 deren (gebrauchtes) Werkzeug im Ordner 1 angezeigt werden. Bei mir ist jetzt das Problem, dass mir nur das erste angezeigt wird, obwohl dort nein steht und bei den anderen ja. (können auch SVerweise mit rüber kopiert werden? Bei mir steht da #NV)
Der bisherige Code:
Sub Anzeigen()
If Cells (13, 3).Value = Ja Then Worksheets("Werkzeug").Range("B3:C8").Copy Destination:=Worksheets("Motor").Range("T12:J17")
ElseIf Cells (14, 3).Value = Ja Then Worksheets("Werkzeug").Range("B11:C18").Copy Destination:=Worksheets("Kabelbaum").Range("K12:L18")
ElseIf Cells (15, 3).Value = Ja Then Worksheets("Werkzeug").Range("B21:C28").Copy Destination:=Worksheets("Interior").Range("M12:N19")
ElseIf Cells (16, 3).Value = Ja Then Worksheets("Werkzeug").Range("B30:C37").Copy Destination:=Worksheets("Exterior").Range("O12:P19")
EndIf
End Sub
Vielen Dank schon mal für eure Hilfe Gruß EcelVBAAnfänger
18.09.2020, 21:25 (Dieser Beitrag wurde zuletzt bearbeitet: 18.09.2020, 21:25 von Raoul21.)
Hi ExcelVBAAfänger
Du schreibst:
Zitat:ich wollte heute an meinem freien Tag einfach ein bisschen mit VBA rumspielen, aber leider kriege ich die Aufgabe nicht hin.
Lass es besser bleiben. VBA macht süchtig und verändert Dein Leben. Leicht kann "ein bisschen mit VBA rumspielen" mit überraschenden Sonnenaufgängen enden, weil es einen nicht mehr los lässt. Noch kannst Du wählen. (Es gibt Opfer, die Dunkelziffer ist ... )
Du schreibst
Zitat:Habe 2 Ordner
Meinst Du Blätter bzw. Tabellenblätter (engl. Worksheets)?
Du schreibst
Zitat:hä? hättest auch einfach den Eintrag löschen können...
Ich glaube, das geht nicht. Und dass deshalb Daniel seinen Text ersetzt hat, damit nicht nichts drinnen steht. Aber ich könnte mich auch irren. Du weisst ja, wovon Du sprichst.
Du schreibst
Zitat:Danke schon mal im Voraus.
Leute, die Dir helfen wollen, schätzen es, wenn sich der Geholfene nach erfolgreicher Hilfeleistung bedankt und nicht im Voraus. So praktisch es für Dich auch sein mag, wenn Du den Dank schon vorweggenommen hast.
Zur Info: Dein Makro hat eine IF-Anweisung mir vielen ELSEIF ELSEIF heisst "sonst, dann wenn" und es folgt eine Bedingung, usw. Wenn eine IF-Bedinung erfüllt ist, geht es im Code weiter bis vor dem ELSEIF, dann geht es nach END IF und nicht bei ELSEIF weiter.
und alle, die mit ".Activate" enden, kannst Du in der Regel löschen, da sie nichts zum Programmablauf beitragen, ausser dass sie die Ablaufdauer verlängern. Zum Bearbeiten einer Zelle muss man nicht das Blatt aktivieren. Es geht auch so.
19.09.2020, 11:03 (Dieser Beitrag wurde zuletzt bearbeitet: 19.09.2020, 11:03 von ExcelVBAAnfänger.)
Vielen Dank Euch allen,
habe es gestern doch noch geschafft es selbst zu lösen. Wahrscheinlich für Excel VBA Profis zum heulen, aber ich habe nach jeder Frucht einfach die If Funktion geschlossen und dann eine neue aufgemacht und Tada, es hat geklappt.
Trotzdem noch mal danke Hi Rudi´s
hab gerade noch bei dir schnell rein geguckt und habe es gesehen, dass du es genau so gemacht hast. Unser Unterscheid ist nur, dass ich noch bei jeder If Verzweigung noch die einzelnen Sheets aktiviert habe.
Raoul hat oben schon geschrieben, dass ich das eigentlich nicht brauche, es würde es nur verlängern. Aber wann braucht man das? Kann mir das bitte jemand sagen.
Ja, kann. Nicht nur jemand, sondern viele. Und wo du sie findest, sagt dir eine Suchmaschine, wenn Du sie nach "excel vba vermeide select und activate" fragst.
Aktiviere ein bestimmtes Blatt, wenn es sichtbar sein soll, zB nach Ablauf des Makros, aber nicht, um eine Zelle anzusprechen.
Aktivieren ist eine arbeits- und zeitintensive Aktion. In Deinem Fall nicht viel, aber wenn das in einer Tausend-Zeile-Schleife ist, wäre es schon spürbar. Und dann führst Du, wie in der Codezeile zu sehen ist, Copy mit genau definierten Zellen von genau definierten Blättern aus. Und damit bezieht sich die Formel auf genau definierte Blätter und nicht auf das gerade aktive Blatt. Dessen Aktivierung zuvor ist daher für den Copy-Befehl ohne Bedeutung.
Dennoch, der Makro-Recorder erzeugt solche Makros, wenn er was aufzeichnet. Erst wird das Blatt ausgewählt, und dann eine Zelle, aber ohne Spezifizierung des Blattes. Solche Programme sind meistens ein Indiz dafür, dass es von einem Makrorekorder stammt. Geht, ist aber umständlich. In kleinem Rahmen ist diese Umständlichkeit auch kaum merkbar.
Wenn Dich das interessiert, mach Dich schlau, zb auf jutub. Aber eine Warnung, wie bereits geagt: VBA ist faszinierend und macht süchtig.