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

Auf Optionsfelder zugreifen

Auf Optionsfelder zugreifen
10.02.2015 22:40:41
Barbara
Hallo
Ich habe ein Makro, dank Eurer Hilfe, das die Spalte G zwischen G und H einfügt und alle Spalten rechts davon nach rechts verschiebt:
  • 
    Sub spalte_Kopieren()
    Columns(8).Insert
    Columns(7).Copy
    Columns(8).PasteSpecial xlPasteValues
    Columns(8).PasteSpecial xlPasteFormats
    End Sub
    

  • So können nach mehrfachem Ausführen mehrere kopierte Spalten entstehen.
    Nun sollte diese Funktion aber erweitert werden, und zwar folgendermaßen:
    In der obersten Zelle einer jeden auf dieser Weise kopierten Spalte soll ein Button sein, mit dem man die jeweilige Spalte wieder löschen kann.
    Für mich zu schwierig, daher meine Bitte an Euch in diesem Super Forum.
    LG,
    Barbara

    5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Auf Optionsfelder zugreifen
    11.02.2015 06:20:49
    Oberschlumpf
    Hi Barbara
    Das Erstellen von Buttons per Code ist nicht das Problem, aber das genaue Positionieren eines Buttons (oder jeden anderen Steuerelementes) ist (nach meiner Meinung) nicht ganz so einfach.
    Was hältst du von der Idee, direkt nach dem Kopieren/Einfügen der Spalte in die jeweils oberste Zelle z Bsp den Text "Spalte löschen" zu schreiben?
    So könntest du jedesmal, wenn du eine Zelle auswählst, ob dieser Text in der Zelle vorhanden ist.
    Wenn JA, dann die Frage, ob Spalte gelöscht werden soll?
    Wenn wieder JA, dann Spalte löschen.
    Dazu versuch es mal mit diesem Code:
    Sub spalte_Kopieren()
    Columns(8).Insert
    Columns(7).Copy
    Columns(8).PasteSpecial xlPasteValues
    Columns(8).PasteSpecial xlPasteFormats
    Range("H1").Value = "Spalte Löschen"
    End Sub
    
    in das SelectChange-Ereignis der Tabelle schreibst du diesen Code:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Value = "Spalte löschen" Then
    If MsgBox("Soll diese Spalte gelöscht werden?", vbQuestion, "Frage") = vbYes Then
    Application.EnableEvents = False
    Columns(Target.Column).Delete Shift:=xlToLeft
    Application.EnableEvents = True
    End If
    End If
    End Sub
    

    So wirst du jedes Mal, wenn du eine Zelle anklickst, die den Inhalt "Spalte löschen" enthält, gefragt, ob die Spalte gelöscht werden soll.
    Klickst du auf NEIN, wird auch nix gelöscht.
    Hilfts?
    Ciao
    Thorsten

    Anzeige
    AW: In dem Fall heisst das...
    11.02.2015 20:50:40
    Barbara
    Vielen Dank, Case. Funktioniert gut.
    Eine Frage zu Deinem Code hätte ich da noch.
    Set objButton = ActiveSheet.Buttons.Add(1, 1, 1, 1)
    
    Was passiert da? Da wird wohl zum Button-Objekt ein Button hinzugefügt.
    Aber was bedeuten die (1, 1, 1, 1)?
    Könnte ich Antwort darauf in der Hilfe finden? Wenn ja, wo?
    Vielen Dank auch Dir Oberschlumpf für Deine Hilfe.
    LG,
    Barbara

    Anzeige
    Hier wird einer...
    11.02.2015 22:57:34
    Case
    Hallo Barbara, :-)
    ... Objektvariablen "objButton" ein Objekt - in dem Fall ein Button - zugewiesen.
    Das Ganze mit "Left:=1, Top:=1, Width:=1, Height:=1" - das dürfte klar sein. :-)
    Die Platzierung passiert dann danach.
    Mit + 1 damit TopLeftCell.Column die richtige Spalte erwischt.
    Servus
    Case

    AW: Hier wird einer...
    13.02.2015 23:12:32
    Barbara
    Danke, hab's kapiert. Könnte jedoch nie selbst drauf kommen.
    Tja, Erfahrung zählt.
    Und Hilfsbereitschaft auch. Daher Danke für Deine Hilfe.

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige