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, 30. November 2022
    #17
  3. lupo1
    lupo1 Tutorial Guru
    Split gibt es im neuen Excel auch als =TEXTTEILEN() sowie =TEXTTEILEN.2D().
     
  4. 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. 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. 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, 7. Dezember 2022
    #24
  10. 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. 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. 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. 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, 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. Eingaben in mehreren Spalten und Zeilen per Knopfdruck löschen

    in Microsoft Excel Hilfe
    Eingaben in mehreren Spalten und Zeilen per Knopfdruck löschen: Hallo zusammen, Ich habe einen Excel Kalkulater gebaut mit welchem man bestimmte Werte (tun hier nichts zur Sache) berechnen kann. Nun ist es so, dass die beiden Tabellenblätter für die...
  3. Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte

    in Microsoft Excel Hilfe
    Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte: Hallo zusammen, wer letzteren Thread kennt, hier eine Neuauflage. Problem: Aus Array-Berechnungen (Variablen von Let) ein weiteres Array zu erzeugen, welches für alle eindeutigen Werte aus G die...
  4. Prozentberechnung auf Angabe einer anderen Spalte

    in Microsoft Excel Hilfe
    Prozentberechnung auf Angabe einer anderen Spalte: Hallo Zusammen, ich brauchte dringend mal wieder Hilfe, bevor ich noch die ganze Nach hier hocke ;-) Ich habe in einer Datei mit der letzten Berechnung Ärger. Ich möchte das in einer Liste unter...
  5. Benutzerdefinierte Spalte anhand von Bedingungen in Powerquery

    in Microsoft Excel Hilfe
    Benutzerdefinierte Spalte anhand von Bedingungen in Powerquery: Hallo zuammen, ich habe eine Beispieldatei angehängt. Ich habe Rohdaten mit mehreren Spalten. Spalte "Text" ist jedoch unvollständig. Die unvollständigen Zellen möchte ich via Powerquery...
  6. Matrix zeilenweise durchlaufen, Vorhandene Daten in eine Spalte schreiben

    in Microsoft Excel Hilfe
    Matrix zeilenweise durchlaufen, Vorhandene Daten in eine Spalte schreiben: Guten Tag, ich habe eine Datei mit einer 12x340 Matrix diese muss für einen weiteren Arbeitsschritt komplett in eine Spalte umgewandelt werden. Google, Youtube und die Suchfunktion hier konnten...
  7. VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.

    in Microsoft Excel Hilfe
    VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.: Hallo zusammen, Eine Tabelle mit 9 Worksheets, Datenblatt, Studien, Studie_1 ...Studie_7. Auf dem Deckblatt werden in Zelle B4-B10 die Namen der Studien eingetragen. Davon abhängig ob ein Name...
  8. Excel VBA Spalten mit Ordnerinhalt vergleichen

    in Microsoft Excel Hilfe
    Excel VBA Spalten mit Ordnerinhalt vergleichen: Hallo, Bin ehr Excel VBA Neuling, Würde aber gerne in einer bestehender Tabelle die Auflistung der Ordner mit dem eigentlichen Stand in den besagten Ordner kontrollieren. Also in der Spalte Q10...
  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