Office: (Office 2019) Spalten anand der Überschriften ansprechen(ein/ausblenden)

Helfe beim Thema Spalten anand der Überschriften ansprechen(ein/ausblenden) in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, richtig verstanden habe, setze ich da wo die MSGBox -Ausgabe ist mein Vergleich der Spalten ein. man verwendet, wie in meiner Demo-Sub... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Creator-X, 8. November 2022.

  1. Exl121150 Erfahrener User

    Spalten anand der Überschriften ansprechen(ein/ausblenden)


    Hallo,
    man verwendet, wie in meiner Demo-Sub "SpaltenNr_Vergleiche()" gezeigt, die Funktion SpaltenTitel_Nr(TitelTexte), wobei in der Variablen "TitelTexte" eben die Spaltentitel (getrennt durch "|") enthalten sind. Diese Funktion liefert genau in der gleichen Reihenfolge die Spaltennummern als Array zurück. Dabei hat das Array genau soviele Elemente, wie eben Spaltentitel an die Funktion übergeben wurden. Im Beispiel wurden 3 Spaltentitel übergeben - somit liefert die Funktion 3 Spaltennummern zurück, die an die dynamisch deklarierte Array-Variablen SpNr() übergeben werden.
    Dabei ist in SpNr(0) die Spaltennummer des ersten Spaltentitels (im Beispiel "Ltg.Nr.") enthalten, in SpNr(1) die Spaltennummer des zweiten Spaltentitels (also von "Flags") und in SpNr(2) die Spaltennummer des dritten Spaltentitels ("BATCH"). Wird aber an die Funktion SpaltenTitel_Nr(...) ein nicht existierender Spaltentitel übergeben, liefert diese dann an seiner Stelle die Nummer 0 zurück.
    Da in SpNr(x) stets ein Ganzzahlwert enthalten ist, können diese Werte in ihrer Größe miteinander verglichen werden, zB. SpNr(0)<SpNr(2) oder SpNr(1)>SpNr(2) etc.

    Da gibt es keine spezielle Funktion, nur eben Cut und Insert, wie in den beiden folgenden identisch wirkenden Makros gezeigt (Spalte C=3 wird zur Gänze ausgeschnitten und vor Spalte E=5 wieder eingefügt, sodass im Endeffekt die Inhalte von Spalten C und D vertauscht wurden).
    Code:
    Sub Makro1()
      With ActiveSheet
        .Columns("C:C").Cut
        .Columns("E:E").Insert Shift:=xlToRight
      End With
    End Sub
    Sub Makro2()
      With ActiveSheet
        .Columns(3).Cut
        .Columns(5).Insert Shift:=xlToRight
      End With
    End Sub
    
     
    Exl121150, 30. November 2022
    #16
  2. Creator-X hat Ahnung
     
    Creator-X, 30. November 2022
    #17
  3. lupo1
    lupo1 Tutorial Guru
    Split gibt es im neuen Excel auch als =TEXTTEILEN() sowie =TEXTTEILEN.2D().
     
  4. Creator-X hat Ahnung

    Spalten anand der Überschriften ansprechen(ein/ausblenden)

    Danke,
    ja diese Funktion kenn ich. Ich will mir aber eine Automation zusammenbauen die ich dann über ein Addin starten kann.
    Spalten anand der Überschriften ansprechen(ein/ausblenden) :cool:
     
    Creator-X, 1. Dezember 2022
    #19
  5. Creator-X hat Ahnung
    Kann man die Spalten auch über SpNr tauschen? So in etwa?

    If SpNr("Ltg.Nr") > SpNr("Pos.Nr.") Then
    With ActiveSheet
    .Columns(SpNr("Ltg.Nr")).Cut
    .Columns(SpNr("Pos.Nr.").Insert Shift:=xlToRight
    End With
     
    Creator-X, 6. Dezember 2022
    #20
  6. Exl121150 Erfahrener User
    Hallo,
    was spricht dagegen? Allerdings muss natürlich die VBA-Syntax eingehalten werden und die Spaltentitel müssen existieren, denn sonst liefert SpNr("SpTitel") als Ergebnis 0 zurück:

    If SpNr("Ltg.Nr") > SpNr("Pos.Nr.") Then
    With ActiveSheet
    .Columns(SpNr("Ltg.Nr")).Cut
    .Columns(SpNr("Pos.Nr.")
    ).Insert Shift:=xlToRight
    End With

    End If

    Die roten CodeTeile ( ")" und "End If" ) müssen ergänzt werden, sonst protestiert der VBA-Compiler und meldet einen Compile-Time-Fehler.
     
    Zuletzt bearbeitet: 7. Dezember 2022
    Exl121150, 7. Dezember 2022
    #21
  7. Creator-X hat Ahnung
    Hallo Exl121150,
    das ist jetzt mein Code. Aber mit der Fehlermeldung: "Laufzeitfehler 13, Typen unverträglich"


    If SpNr("Ltg.Nr") > SpNr("Pos.Nr.") Then
    With ActiveSheet
    .Columns(SpNr("Ltg.Nr")).Cut
    .Columns(SpNr("Pos.Nr.")).Insert Shift:=xlToRight
    End With
    Else
    ' alles ok
    End If
     
    Creator-X, 7. Dezember 2022
    #22
  8. Exl121150 Erfahrener User

    Spalten anand der Überschriften ansprechen(ein/ausblenden)

    Hallo,

    ich habe leider nicht nachgeprüft, was das SpNr(Sp) ist: Es ist das Spaltennr-Array der vorher übergebenen Zeichenkettenliste der Spaltentitel. Um ein Element aus diesem Array auszuwählen, muss man eine Ganzzahl im Bereich der Liste übergeben. Etwas anderes kommt da nicht in Frage.

    Willst du dagegen die Nummer der Spalte, in der ein bestimmter Spaltentitel steht, kannst du das mit der bereits vorhandenen Funktion HoleSpalte(wksTab As Worksheet, strTitel As String) As Long tun. Wie du diese verwenden musst/kannst, siehst du an der folgenden Funktion. Diese kannst du der Einfachheit halber in ein allgem.Modul einfügen.
    Code:
    Public Function SpTitNr(SpTit As String) As Long
       SpTitNr = HoleSpalte(ActiveSheet, SpTit)
    End Function
    

    Dann kannst du zB. deine gewünschten Funktionsaufrufe tätigen:
    If SpTitNr("Ltg.Nr") > SpTitNr("Pos.Nr.") Then
    With ActiveSheet
    .Columns(SpTitNr("Ltg.Nr")).Cut
    .Columns(SpTitNr("Pos.Nr.")).Insert Shift:=xlToRight
    End With
    Else
    ' alles ok
    End If
     
    Exl121150, 7. Dezember 2022
    #23
  9. Creator-X hat Ahnung
     
    Creator-X, 7. Dezember 2022
    #24
  10. Creator-X hat Ahnung
    Spalten anand der Überschriften ansprechen(ein/ausblenden) *:)*
    @ Exl121150 Mercy für die Hilfe und Erkläuterung. Jetzt funktioniert es.
    Gruß CXSpalten anand der Überschriften ansprechen(ein/ausblenden) *;)*Spalten anand der Überschriften ansprechen(ein/ausblenden) :rolleyes:
     
    Creator-X, 7. Dezember 2022
    #25
  11. Creator-X hat Ahnung
    Hallo @Exl121150 ,
    aktuell funktioniert der Code gut und in der Excel Tabelle funktioniert es auch. Komischer weise als addin funktioniert das einblenden der Spalten nicht mehr.
    Weist du eventuell woran das liegen kann?
    Ich häng mal die zwei Dateien mit dran plus eine Datei so wie ich sie bekomme und auf der ich das addin anwenden will.
    Die Addin Datei musste ich in eine normale Datei umbenennen.
     
    Creator-X, 9. Dezember 2022
    #26
  12. Exl121150 Erfahrener User
    Hallo,
    wenn du die bisherige Excel-Datei verwendet hast, konntest du die enthaltenen Programme ausführen - und diese bezogen sich auf die Daten der Arbeitsblätter, die in derselben Arbeitsmappe enthalten waren.

    Wenn du die bisherige Excel-Datei plötzlich als Add-In einsetzt, so ergibt sich ja eine neue Situation, denn die Add-In-Excel-Datei ist ja jetzt eine zweite Arbeitsmappe (ThisWorkbook - die auch Arbeitsblätter wie bisher enthält) zusätzlich zur im Vordergrund agierenden Arbeitsmappe (ActiveWorkbook - die ebenfalls Arbeitsblätter enthält). Im Projektfenster (Tastenkombination: Strg+R) des VBA-Editors ist das übersichtlich zu sehen.

    Du musst also darauf achten, dass du auf die Daten der Arbeitsblätter der richtigen Arbeitsmappe zugreifst, wenn du Programme, die sich in der Add-In-Arbeitsmappe befinden, ausführst, und die Daten dazu sich nicht wie bisher in derselben Arbeitsmappe (= Add-In-Arbeitsmappe) befinden sollen, sondern in der Vordergrund-Arbeitsmappe.

    Wenn du ins Codemodul der AddIn-Arbeitsmappe (hat im Projektfenster den Namen "DieseArbeitsmappe" bzw. "ThisWorkbook") folgenden VBA-Code gibst,
    Code:
    Option Explicit
    
    Public WbAddIn As Workbook
    
    Private Sub Workbook_Open()
      Set WbAddIn = ThisWorkbook
      MsgBox "AddIn: " & WbAddIn.Name
      Debug.Print "AddIn: "; WbAddIn.Name, "-", WbAddIn.Worksheets(1).Range("C1").Value
    End Sub
    

    so wird dieser ausgeführt, wenn du die AddIn-Datei lädst: Es wird die Public-Workbook-Variable "WbAddIn" mit einem Objektzeiger auf die AddIn-Arbeitsmappe befüllt, der Name dieser Arbeitsmappe in einer Messagebox angezeigt und ferner dieser im Direktfenster angezeigt zusammen mit dem Zellinhalt von Zelle "C1" des ersten Arbeitsblattes der AddIn-Mappe.
    Dadurch dass "WbAddIn" als "Public" deklariert wurde, ist sie im ganzen Projekt sichtbar und gültig und damit überall einsetzbar.

    Wenn du ins Codemodul der Vordergrund-Arbeitsmappe (hat im Projektfenster den Namen "DieseArbeitsmappe" bzw. "ThisWorkbook") folgenden VBA-Code eingibst,
    Code:
    Option Explicit
    
    Public WbActive As Workbook
    
    Private Sub Workbook_Open()
      Set WbActive = ThisWorkbook
      MsgBox "Aktive Mappe: " & WbActive.Name
      Debug.Print "AktiveMappe: "; WbActive.Name, "-", WbActive.Worksheets(1).Range("B1").Value
    End Sub
    

    so wird dieser ausgeführt, wenn du die Vordergrund-Datei lädst: Es wird die Public-Workbook-Variable "WbActive" mit einem Objektzeiger auf die Vordergrund-Arbeitsmappe befüllt, der Name dieser Arbeitsmappe in einer Messagebox angezeigt und ferner dieser im Direktfenster angezeigt zusammen mit dem Zellinhalt von Zelle "B1" des ersten Arbeitsblattes der Vordergrund-Mappe.
    Dadurch dass "WbActive" ebenfalls als "Public" deklariert wurde, ist sie im ganzen Projekt sichtbar und gültig und damit überall einsetzbar.

    Mithilfe dieser beiden Variablen sind die beiden Mappen stets unterscheidbar. Gleichzeitig siehst du auch, wie sie einzusetzen sind.

    Wenn du im Direktfenster des VBA-Editors nachsiehst, müssten 2 Zeilen enthalten sein, die in etwa folgendermaßen aussehen:
    AktiveMappe: CreatorX_Happy_PMI_V1.2.0.xlsm - Reading No
    AddIn: CreatorX_Happy_PMI_V1.2.0 - addin.xlam - Time
     
    Exl121150, 10. Dezember 2022
    #27
  13. Creator-X hat Ahnung

    Spalten anand der Überschriften ansprechen(ein/ausblenden)

    Hi,
    ich hab ja shcon eine erste addin Variante die funktioniert. Da habe ich einfach ins Codemodul
    Code:
    Sub Auswertung(control As IRibbonControl)
    UserForm1.Show
    End Sub
    eingegeben und da funktioniert es. Spalten anand der Überschriften ansprechen(ein/ausblenden) :oops:
    Wobei ja deine Erläuterung verständlich ist.
    Es wundert mich nur das es mit der anderen Datei klappt die ich als addin eingebunden habe und bei der aktuellen nicht mehr.
     
    Creator-X, 11. Dezember 2022
    #28
  14. Creator-X hat Ahnung

    Hab gerade festegstellt das ja alles soweit funktioniert bis auf die Case nwendung
    Also das mit dem code in der Arbeitsmappe aus dem ersten CodeBsp. von dir funktioniert bei mir nicht.
    Wobei ich jetzt mitbekommen habe das in der .xlsm alles funktioniert und in der .xlsm nur die Caseanwendung nicht funktioniert.
     
    Creator-X, 11. Dezember 2022
    #29
  15. Creator-X hat Ahnung
     
    Creator-X, 11. Dezember 2022
    #30
Thema:

Spalten anand der Überschriften ansprechen(ein/ausblenden)

Die Seite wird geladen...
  1. Spalten anand der Überschriften ansprechen(ein/ausblenden) - Similar Threads - Spalten anand Überschriften

  2. Wie kann ich die x häufigsten Ausdrücke aus einer Spalte ermitteln?

    in Microsoft Excel Hilfe
    Wie kann ich die x häufigsten Ausdrücke aus einer Spalte ermitteln?: Nach umfangreicher Recherche und einigem Probieren konnte ich meine Anforderung noch nicht erfüllen. Nun hoffe ich auf Eure Unterstützung. Für ein Tippspiel importieren wir regelmäßig aus einer...
  3. Wenn ein Wert ein einer Spalte, dann komplette Zeile im anderen Blatt untereinander einfügen.

    in Microsoft Excel Hilfe
    Wenn ein Wert ein einer Spalte, dann komplette Zeile im anderen Blatt untereinander einfügen.: Hallo, kann mir jemand bitte bei folgenderm Helfen. Habe etwas ähnliches gefunden was ich brauche, nur noch eine kleine Änderung ist notwendig. Aufgabe: Es wird geprüft, ob in Spalte Q ein Wert...
  4. Mittelwert aus mehreren Spalten als dynamisches Array

    in Microsoft Excel Hilfe
    Mittelwert aus mehreren Spalten als dynamisches Array: Hallo liebes Forum, ich bin bei folgendem Problem ratlos: Ich berechne für verschiedene Dozenten Feedback anhand von 3 verschiedenen Kriterien. Die Stammdaten der Feedbacks stehen in einer...
  5. Formel in Spalten / Zellen aktivieren

    in Microsoft Excel Hilfe
    Formel in Spalten / Zellen aktivieren: Hallo, ich versuche mich immer noch an einer Tabelle, wo ich mittels Userform Daten hineinkopiere. Formeln in den Spalten F, I und L ebenfalls zu kopieren gelingt mir nicht. Ich suche...
  6. Zwei Dateien vergleichen - Zielinfo in unterschiedlichen Spalten

    in Microsoft Excel Hilfe
    Zwei Dateien vergleichen - Zielinfo in unterschiedlichen Spalten: Hallo, ich benötige eure Unterstützung. Ich habe zwei Dateien (Excel) dahingehend abgleichen ob in der einen Datei (Master) Zieldaten (Boxennummern - jede in einer Zeile) und deren Folgedaten...
  7. Spalte Summieren wenn Monat UND Jahr

    in Microsoft Excel Hilfe
    Spalte Summieren wenn Monat UND Jahr: Hallo Forum, ich scheitere an einem wie ich dachte recht einfachen Problem, aber vielleicht kann mir hier jemand helfen. Ich habe eine Spalte mit einem Datum, und eine Zweite mit einer Summe. Der...
  8. Spalten Sortieren nach Zahlen mit Buchstaben (1a,1b usw)

    in Microsoft Excel Hilfe
    Spalten Sortieren nach Zahlen mit Buchstaben (1a,1b usw): Hallo, ich habe hier eine Bauteileliste erstellt um diese leichter wiederzufinden. Das Problem ist, dass die Baugruppen unterteilt sind (ist ein Kartonbaubogen mit mehreren Hundert Teilen,...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden