Office: (Office 365) Intelligent eTabelle bestimmter Zellbereich markieren VBA

Helfe beim Thema Intelligent eTabelle bestimmter Zellbereich markieren VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe eine Intelligente Tabelle in der ein Zellbereich Markiert werden soll (A-I). Später soll dieser Bereich in Outlook eingefügt... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Cherished, 15. August 2024.

  1. Cherished hat Ahnung

    Intelligent eTabelle bestimmter Zellbereich markieren VBA


    Hallo zusammen,
    ich habe eine Intelligente Tabelle in der ein Zellbereich Markiert werden soll (A-I).
    Später soll dieser Bereich in Outlook eingefügt werden. Das bekomme ich hin.
    Wie und wo müsste ich den Bereich angeben.
    Code:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim strAuswahl As ListObject
    Dim ZeileMakieren As Long
    
    Set strAuswahl = Tabelle1.ListObjects("tbl_ÄnderungenSchaltzeiten")
    'Abbruch
    If Target.Rows.Count > 1 Or Intersect(Target, strAuswahl.DataBodyRange) Is Nothing Then Exit Sub
    If Target.Column <> 11 Then Exit Sub
    'Spalte "Senden" das Wort gesendet  und Datum reinschreiben
    
    If Target.Column = 11 Then
         Target.Value = "gesendet am " & Date
     End If
    
    'Zeilen Makieren
    ZeileMakieren = Target.Row - strAuswahl.HeaderRowRange.Row
    
    strAuswahl.ListRows(ZeileMakieren).Range().Select 
    'Selection.Copy
    'Application.CutCopyMode = False
    
    
    
    End Sub
    Den Code habe ich mir zusammen gebastelt.

    Danke
    Martin
     
    Cherished, 15. August 2024
    #1
  2. Klaus-Dieter Erfahrener User
    Hallo Martin,

    kopieren würde so gehen:

    Code:
    Sub kopieren()
        Range("tbl_ÄnderungenSchaltzeiten[[#All],[ID]:[Zurückgenomme]]").Copy
    End Sub
    Selektieren sollte man in Makros generell vermeiden.
     
    Zuletzt bearbeitet: 15. August 2024
    Klaus-Dieter, 15. August 2024
    #2
  3. Beverly
    Beverly Erfahrener User
    Hi Martin,

    die aktuelle Zeile wird mit deinem Code doch markiert - wo also ist das Problem?


    Intelligent eTabelle bestimmter Zellbereich markieren VBA GrußformelIntelligent eTabelle bestimmter Zellbereich markieren VBA Beverly's Excel - Inn
     
    Beverly, 15. August 2024
    #3
  4. Cherished hat Ahnung

    Intelligent eTabelle bestimmter Zellbereich markieren VBA

    Guten Morgen
    @Klaus-Dieter
    ich hatte den Code in einem Video gesehen. Klar der hat das dann, mit select gemacht so das man was sieht. Ich habe mich dann darauf versteift und nicht mehr darüber nachgedacht direkt gleich zu Kopieren.
    Leider kopiert dein Code die gesamte Tabelle. Ich will aber nur die Zeile haben in der ich den Doppelklick in Spalte K gemacht habe.
    wie und wo müsste ich deine Code einfügen?
    @Karin
    Ja aber ich will doch nur die Zellbereich A-I haben.
    Grüße und einen Schönen Tag
    Martin
     
    Cherished, 16. August 2024
    #4
  5. OilMax hat Ahnung
    Hallo Martin,

    Soll der Kopiervorgang wirklich mit jeden Doppelklick (zeilenweise) passieren? Wenn ja dann so:
    Code:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim iZeile&
        If Not Intersect(Target, Range("tbl_ÄnderungenSchaltzeiten[Spalte11]")) Is Nothing Then ' in den eckigen Klammern die Spaltenüberschrift anpassen
            With ListObjects(1)
                iZeile = Target.Cells.Row - .HeaderRowRange.Column
                With .DataBodyRange
                    .Range(.Cells(iZeile, 1), .Cells(iZeile, 9)).Copy
                End With
            End With
        End If
        Cancel = True
    End Sub
    
    Das Einfügen in Outlook hast du ja geschrieben bekommst du hin.

    Gruß Uwe
     
  6. OilMax hat Ahnung
    Sorry, da war in einer Zeile was falsch - ändere diese Zeile (iZeile=...) so:
    Code:
    iZeile = Target.Cells.Row - .HeaderRowRange.Row - 1
    Naja, man sollte es doch mal testen bevor man was reinsetzt.
    Gruß Uwe
     
  7. Beverly
    Beverly Erfahrener User
    @Uwe,
    mit deinem Code wird die falsche Zeile kopiert.

    @Martin,
    so sollte der korrekte Zellbereich kopiert werden:

    Code:
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim strAuswahl As ListObject
        Dim ZeileMarkieren As Long
        Set strAuswahl = Tabelle1.ListObjects("tbl_ÄnderungenSchaltzeiten")
        'Doppelklick erfolgte in in Intelligenter Tabelle
        If Not Intersect(Target, strAuswahl.DataBodyRange) Is Nothing Then
            'Zielzelle ist Zelle 11 der Intelligenten Tabelle
            If Target.Column = strAuswahl.HeaderRowRange.Columns(11).Column Then
                'Spalte "Senden" das Wort gesendet  und Datum reinschreiben
                Target.Value = "gesendet am " & Date
                With strAuswahl
                    ZeileMarkieren = Target.Row - .HeaderRowRange.Row
                    .DataBodyRange.Range("A" & ZeileMarkieren & ":I" & ZeileMarkieren).Copy
                End With
                Cancel = True
                Application.CutCopyMode = False
             End If
        End If
    End Sub
    
    

    Intelligent eTabelle bestimmter Zellbereich markieren VBA GrußformelIntelligent eTabelle bestimmter Zellbereich markieren VBA Beverly's Excel - Inn
     
    Beverly, 16. August 2024
    #7
  8. Cherished hat Ahnung

    Intelligent eTabelle bestimmter Zellbereich markieren VBA

    @Uwe
    Leider muss ich Karin recht geben. Es wurde die Zeile 8 aus dem Tabellenblatt Kopiert und nicht aus der Intelligenten Tabelle. Die Spalten waren richtig.
    Kann es sein das bei der Code
    Code:
     Dim iZeile&
    was fehlt? Und es deshalb nicht funktioniert
    @Karin
    Dein Code funktioniert prächtig
    Danke
    Gruß
    Martin
     
    Cherished, 16. August 2024
    #8
  9. Exl121150 Erfahrener User
    Hallo @Cherished,

    die Zeile "Dim iZeile&" und die Zeile "Dim iZeile As Long" sind für den VBA-Compiler völlig identisch. Da kann nichts "fehlen".
     
    Exl121150, 16. August 2024
    #9
  10. Cherished hat Ahnung
    Ach so
    da ich nicht so tief in VBA bin, wusste ich das nicht.
    Gruß
    Martin
     
    Cherished, 16. August 2024
    #10
  11. OilMax hat Ahnung
    ja ich habs grad selbst festgestellt. Aber warum dieses seltsame Verhalten im Listobjekt, wenn man den Range von Zelle zu Zelle festlegt. Eine einzelne Zelle wird ja auch korrekt zugewiesen.

    Das muss mir mal einer erklären.

    Wenn ich eine neue Zeile mit:
    Code:
    ListRow.Add.Range(ubound(arr,1),ubound(arr,1))=arr anlege (sind ja auch nur Nummern(Zeile Spalte)) 
    passiert dieses Verhalten nicht.
    Gut, so was mach ich immer mit Arrays, da mir das gewurste durch die Tabellen zu lahm ist. Daher ist mir dieses Verhalten nie aufgefallen.

    Gruß Uwe
     
  12. Beverly
    Beverly Erfahrener User
    Hi Uwe,

    es gibt da wohl Excel-intern einen Konflickt zwischen der Ansprache der Zeilen in Bezug auf die intelligente Tabelle und der Zeilen im Tabellenblatt - Excel versteht quasi die Zeilennummer der intelligenten Tabelle als Zeilennummer des Tabellenblattes. Deshalb darf man in einer With-Anweisung auf die intelligente Tabelle die Cells-Ansprache nicht auf die intelligente Tabelle beziehen. Dein Code funktioniert wie folgt:

    Code:
            With ListObjects(1)
                iZeile = Target.Row - .HeaderRowRange.Row
                With .DataBodyRange
                    .Range(Cells(iZeile, 1), Cells(iZeile, 9)).Copy
                End With
            End With
    

    Intelligent eTabelle bestimmter Zellbereich markieren VBA GrußformelIntelligent eTabelle bestimmter Zellbereich markieren VBA Beverly's Excel - Inn
     
    Beverly, 16. August 2024
    #12
  13. OilMax hat Ahnung

    Intelligent eTabelle bestimmter Zellbereich markieren VBA

    Hallo Karin,

    Ich denke auch, dass da irgendwas nicht so ist wie es sein soll.
    Da muss damit es funktioniert muss zwar der Range dem Listobjekt zugewiesen sein, aber die Zellen dem Tabellenblatt.
    Man kann sich das halt merken, aber irgendwie ist es nicht logisch, da es mit dem Range via Resize im Listobjekt ja klappt. Das sind ja letztendlich auch Zeilen-/Spaltenkoordinaten. hmm
    Danke für die Info.

    Schönes Wochenende
    Gruß Uwe
     
  14. Beverly
    Beverly Erfahrener User
    Hi Uwe,

    mit ListRows.Add muss nicht auf eine bestimmte Zeile innerhalb der intelligenten Tabelle zugegriffen werden sondern Excel kennt ja den Gesamt-Bereich der intelligenten Tabelle und weiß, dass ausgehend von der 1. Zeile unterhalb die vorgegebene Anzahl an Zeilen hinzugefügt werden muss - es kann im Code also gar nicht erst Konflikt zwischen Zeilen der intelligenten Tabelle und Zeilen des Tabellenblattes auftreten.


    Intelligent eTabelle bestimmter Zellbereich markieren VBA GrußformelIntelligent eTabelle bestimmter Zellbereich markieren VBA Beverly's Excel - Inn
     
    Beverly, 16. August 2024
    #14
  15. Cherished hat Ahnung
    Hallo Karin,
    das mit dem doppelklick hat sich in der Praxis nicht bewährt, da ich nur eine Zeile Kopieren kann.
    Ich habe jetzt ein Userform gemacht in dem ich bis zu 4 Zeilen auswählen kann.
    Meine Tabelle wird auch gefiltert nur dann bekomme ich ein Fehler.
    Weiter möchte ich nur die ersten 9 spalten (A:I) Kopieren
    Mein zusammengebastelter Code
    Code:
    Dim strAuswahl As ListObject
        Dim ZeileMarkieren As Long
        Set strAuswahl = Tabelle1.ListObjects("tbl_ÄnderungenSchaltzeiten")
    
    Dim rngBereich As Range
    strAuswahl.AutoFilter.ShowAllData
       
     With strAuswahl
          .Range.AutoFilter Field:=1, Criteria1:=Array(Senden.ID_1.Value, Senden.ID_2.Value, Senden.ID_3.Value, Senden.ID_4.Value), Operator:=xlFilterValues
    '    Set rngBereich = .DataBodyRange
        Set rngBereich = Intersect(rngBereich, .Range.SpecialCells(xlCellTypeVisible))
       
    'Bis dahin funktioniert der Code
    
      With strAuswahl
    '                ZeileMarkieren = Target.Row - .HeaderRowRange.Row
                    .DataBodyRange.Range("A" & rngBereich & ":I" & rngBereich).Copy
                End With
                Cancel = True
                Application.CutCopyMode = False
     
    
     
    End With
    
    End Sub
    
    
    Kannst du mir nochmals helfen?
    Verzeih den Durcheinandern Code, habe herumprobiert und haben dann den letzten Stand hier eingefügt
    Danke
    Gruß
    Martin
     
    Cherished, 23. August 2024
    #15
Thema:

Intelligent eTabelle bestimmter Zellbereich markieren VBA

Die Seite wird geladen...
  1. Intelligent eTabelle bestimmter Zellbereich markieren VBA - Similar Threads - Intelligent eTabelle bestimmter

  2. Bedingte Formatierung funktioniert nicht

    in Microsoft Excel Hilfe
    Bedingte Formatierung funktioniert nicht: Hallo, ich habe eine Excel Datei erstellt und es funktioniert alles, bis auf eine bedingte Formatierung. Ich verstehe einfach nicht wieso. Habe in der Liste schon andere Formatierungen, die sehr...
  3. VBD Daten aus einer "intelligenten" Tabelle in einer anderen "intelligenten" Tabelle archivieren

    in Microsoft Excel Hilfe
    VBD Daten aus einer "intelligenten" Tabelle in einer anderen "intelligenten" Tabelle archivieren: Hallo zusammen, Ich hab hier schon viel rumgeschaut, komme aber mit meinem Problem leider nicht weiter. Vielleicht könnt ihr mir ja weiterhelfen. Ich habe eine Tabelle ("tbl_Umsatz"), auf dem...
  4. Fehler in intelligenter Tabelle

    in Microsoft Excel Hilfe
    Fehler in intelligenter Tabelle: In einer intelligenten Tabelle kann ich die Formel =summe($a$1:a1) nach unten kopieren. Das funktioniert so für alle bestehenden Zeilen, aber sobald ich eine neue Zeile generiere, wird zwar die...
  5. Daten in intelligenter Tabelle updaten

    in Microsoft Excel Hilfe
    Daten in intelligenter Tabelle updaten: Hallo, ich habe ein kurze intelligente Tabelle mit Formeln und Werten. In Spalte A steht eine eindeutige ID. In Spalte B bis Z dann die Formeln bzw. Werte. Die Werte aus der kurzen Tabelle soll...
  6. Intelligente Tabelle erweitern trotz Blattschutz

    in Microsoft Excel Hilfe
    Intelligente Tabelle erweitern trotz Blattschutz: Hallo, ich möchte ein Blattschutz auf mein Arbeitsblatt legen aber wenn ich das mache funktioniert die automatische Erweiterung der intelligente Tabelle nicht mehr Wie kann ich das Problem...
  7. Index/Aggregat in Intelligente Tabelle

    in Microsoft Excel Hilfe
    Index/Aggregat in Intelligente Tabelle: Hallo zusammen, leider stehe ich mal wieder auf dem Schlauch. Ich habe eine Intelligente Tabelle mit Zählerstände. Nun will ich die Zählerstände vom Vorjahr (z.B 31.12.20)ins neue Jahr (1.1.21)...
  8. Verwenden intelligenter Technologien in Outlook im Web und Outlook.com

    in Microsoft Outlook Tutorials
    Verwenden intelligenter Technologien in Outlook im Web und Outlook.com: Verwenden intelligenter Technologien in Outlook im Web und Outlook.com Outlook im Web Outlook.com Mehr... Weniger...
  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