Office: (Office 2019) Prüfen und Verketten von Zellen mit Formeln als Inhalt

Helfe beim Thema Prüfen und Verketten von Zellen mit Formeln als Inhalt in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Sehr geehrte Damen und Herren, ich möchte in einer Excel Tabelle ca. 72 Zellen miteinander verketten und prüfen, ob diese gefüllt sind, falls manche... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von EaryTide, 26. Juli 2022.

  1. EaryTide Neuer User

    Prüfen und Verketten von Zellen mit Formeln als Inhalt


    Sehr geehrte Damen und Herren,

    ich möchte in einer Excel Tabelle ca. 72 Zellen miteinander verketten und prüfen, ob diese gefüllt sind, falls manche dieser Zellen leer sind sollen diese aus der Verkettung am Ende herausgenommen werden. Die Zellen die gefüllt sind bzw. einen Wert haben sollen in der Verkettung am Ende bleiben. Problematik ist die Prüfung da ich es nicht umgesetzte bekomme die Prüfung bei einer Leeren Zelle fortzuführen. Die Zusammensetzung am Ende (VERKETTEN) gestaltet sich meiner Meinung auch schwierig, da der Status der Zellen (Leer / Nicht Leer) zwischengespeichert werden muss.

    Bitte da um Hilfe, kann auch ’ne komplette Überarbeitung der Formel sein.

    Im Anhang ist eine Tabelle, wo die Grundformel zur Verkettung enthalten ist.

    Bei Fragen stehe ich gerne zur Verfügung.
     
    EaryTide, 26. Juli 2022
    #1
  2. DL_
    DL_ PowerQuery Guru
    Moin

    Schreibe mal bei Gelegenheit das Wunschergebnis in die Datei.
     
  3. EaryTide Neuer User
    Habe jetzt in der zweiten Arbeitsmappe "Skript" in den Zeilen A17/A18 sozusagen das Ergebnis eingetragen. A17 ist vor der Veränderung und A18 ist so in etwa das Zielergebnis.

    Zur Erklärung: die Punkte {9} {10} {20} sind auf der Ersten Armeitsmappe leer daher sollen diese aus der Verkettung entfernt werden und am ende soll dann der Befehl ohne die am anfang genannten Punkte zusammengesetzt sein. Im besten fall dann auch noch Funktionieren aber das ist dann mein Problem.
     
    EaryTide, 26. Juli 2022
    #3
  4. Exl121150 Erfahrener User

    Prüfen und Verketten von Zellen mit Formeln als Inhalt

    Hallo,

    ich habe dir in der beiliegenden Datei eine benutzerdef. VBA-Funktion StringErzeugen(Bereich) in einem allgemeinen Codemodul eingefügt:
    Code:
    Option Explicit
    
    Public Function StringErzeugen(rngZeile As Range, Optional Tr2$ = " ", Optional Tr1$ = " ") As String
      Dim S As String, Sp As Long
      Dim S1 As String, S2 As Variant
     
      S = ""
      With rngZeile
          For Sp = 1 To .Columns.Count Step 2
         
            S1 = .Cells(Sp): S2 = .Cells(Sp + 1)
            If Not IsEmpty(S2) Then
               S = S & Tr1 & S1 & Tr2 & S2
            End If
       
          Next Sp
      End With
     
      StringErzeugen = Mid$(S$, Len(Tr1) + 1)
    
    End Function
    

    Sie überprüft in dem übergebenen Zeilenbereich jede 2. Zelle, ob sie einen Inhalt hat.
    Falls ja, wird der Inhalt der Zelle davor und der Inhalt dieser Zelle zusammen mit 2 Trennzeichen (=Leerzeichen) an den bisherigen String angefügt - ansonsten wird dieser Schritt übergangen.

    Im Arbeitsblatt "Skript" kannst du in den Zellen A21, A22 und A23 sehen, wie eingesetzt wird.
    Der Funktion können bis zu 2 Trennzeichen zusätzlich übergeben werden. Wie das dann aussieht, kannst du in Zelle A25 sehen.
     
    Exl121150, 26. Juli 2022
    #4
    1 Person gefällt das.
  5. Exl121150 Erfahrener User
    Hallo,

    nachträglich zu Posting #4 habe ich im Arbeitsblatt "Skript" in Zelle A29 eine VBA-freie Formellösung eingebaut. Sie hat allerdings eine Länge von 3322 Zeichen. Im Folgenden zeige ich dir nur den Anfang und das Ende der Formel. Der Rest dazwischen sieht aus wie der Formelteil vor/nach dem ...usw... Wie man sieht, lässt sich die Formel erheblich verkürzen, wenn man statt Arbeitsblatt 'Grundlage Skript' den Arbeitsblattnamen zB.auf 'Grd' umstellt.

    =WENN(LÄNGE('Grundlage Skript'!B2);'Grundlage Skript'!A2&" "&'Grundlage Skript'!B2;"")
    &WENN(LÄNGE('Grundlage Skript'!D2);" "&'Grundlage Skript'!C2&" "&'Grundlage Skript'!D2;"")
    &WENN(LÄNGE('Grundlage Skript'!F2);" "&'Grundlage Skript'!E2&" "&'Grundlage Skript'!F2;"")
    &WENN(LÄNGE('Grundlage Skript'!H2);" "&'Grundlage Skript'!G2&" "&'Grundlage Skript'!H2;"")

    '.... usw. ...
    &WENN(LÄNGE('Grundlage Skript'!BN2);" "&'Grundlage Skript'!BM2&" "&'Grundlage Skript'!BN2;"")
    &WENN(LÄNGE('Grundlage Skript'!BP2);" "&'Grundlage Skript'!BO2&" "&'Grundlage Skript'!BP2;"")
    &WENN(LÄNGE('Grundlage Skript'!BR2);" "&'Grundlage Skript'!BQ2&" "&'Grundlage Skript'!BR2;"")
    &WENN(LÄNGE('Grundlage Skript'!BT2);" "&'Grundlage Skript'!BS2&" "&'Grundlage Skript'!BT2);"")
     
    Exl121150, 27. Juli 2022
    #5
    1 Person gefällt das.
  6. EaryTide Neuer User

    Vielen Dank für die Hilfe das ist genau das was ich gesucht hatte. Kann ich eigentlich davon eine Excel Vorlage (.xltx) erstellen die dieses VB-Modul beibehält?

    Vermutlich wäre das mit Excel Funktionen selbst nicht möglich bzw. zu kompliziert gewesen richtig?

    Werde mich jetzt auch etwas mehr mit Visual Basic beschäftigen da sich das anscheinend relativ nützlich macht.
     
    EaryTide, 27. Juli 2022
    #6
  7. EaryTide Neuer User
    Kannst bei Post #6 die Frage mit Excel ignorieren, die Seite war nicht aktualisiert. Nochmal wirklich danke das ist für mich fast wie Hexenwerk hier haha
     
    EaryTide, 27. Juli 2022
    #7
  8. EaryTide Neuer User

    Prüfen und Verketten von Zellen mit Formeln als Inhalt

    Bräuchte bei einer kleinen Sache noch Hilfe.

    Bei dieser Zeichenkette: "set /Setup/WLAN-Management/AP-Configuration/Accesspoints/ {1}" wird die Parameter Nr. {1} am Anfang mit einem Leerzeichen versehen, dafür das der Befehl funktioniert brauche ich den Anfang aber ohne Leerzeichen, hast du da eine Lösung für?

    Versuche das mit Excel Formeln irgendwie auszubügeln, da ich Visual Basic nicht beherrsche.
     
    EaryTide, 27. Juli 2022
    #8
  9. Exl121150 Erfahrener User
    Hallo,

    also wenn ich das recht verstanden habe, brauchst du statt
    der Zeichenkette "set /Setup/WLAN-Management/AP-Configuration/Accesspoints/ {1}..."
    die Zeichenkette "set /Setup/WLAN-Management/AP-Configuration/Accesspoints/{1}..."

    Die folgende VBA-Funktion erfüllt diesen Wunsch:
    Code:
    Option Explicit
    
    Public Function StringErzeugen(rngZeile As Range, Optional Tr2$ = " ", Optional Tr1$ = " ") As String
      Dim S As String, Sp As Long
      Dim S1 As String, S2 As Variant
     
      S = ""
      With rngZeile
          For Sp = 1 To .Columns.Count Step 2
        
            S1 = .Cells(Sp): S2 = .Cells(Sp + 1)
            Select Case Sp
              Case 1, 3
                If Not IsEmpty(S2) Then
                   S = S & S1 & Tr2 & S2
                End If
              Case Else
                If Not IsEmpty(S2) Then
                   S = S & Tr1 & S1 & Tr2 & S2
                End If
            End Select
          Next Sp
      End With
     
      StringErzeugen = S
    
    End Function
    

    Die modifizierte Datei liegt bei. Im Arbeitsblatt "Skript" in den Zellen A21, A22 und A23 müsste die gewünschte Änderung aufscheinen.
    Ebenfalls in den Zellen A27 und A28
     
    Zuletzt bearbeitet: 27. Juli 2022
    Exl121150, 27. Juli 2022
    #9
    1 Person gefällt das.
  10. EaryTide Neuer User
    Ja, ist genau das, was ich brauchte, super Datei, Danke schön.

    Eine Sache ist mir jedoch aufgefallen: Der VBA-Code entfernt keine Zellen, in denen eine Excel Formel enthalten ist.
    Bspw.

    Code:
    =WENN(Deploymentliste!E3="";"";GROSS(Deploymentliste!E3))
    

    Diese Formel zieht aus einer anderen Tabelle die Informationen für die Parameter {1} {2} {3} und tauscht kleine Buchstaben durch große aus.

    Wenn die Zelle, aus der die Informationen kommen, sollen leer ist, wird ein leerer String in die Zelle eingesetzt, da ich mit der Standardausgabe von Excel "0" nichts anfangen kann. (Weil weitere Formeln dann nicht gehen würden, etc.)

    Im VBA-Code am Ende erhalte ich dann folgende Ausgabe:
    Fehler ist Rot markiert.

    Code:
    set /Setup/WLAN-Management/AP-Configuration/Accesspoints/{1}  {2}  {3}  {4} DEFAULT {6} default {7} 2.4GHz {8} 5GHz..
    

    "set /Setup/WLAN-Management/AP-Configuration/Accesspoints/{1} {2} {3} {4} DEFAULT {6} default {7} 2.4GHz {8} 5GHz.."

    Gibt es eine Möglichkeit das der VBA-Code diese trotzdem entfernt?
    Sry das ich mit so vielen Sachen komme und auch so Häppchenweise, mir fällt das meiste gerade erst auf.
     
    EaryTide, 27. Juli 2022
    #10
  11. Exl121150 Erfahrener User
    Hallo,

    aus diesem Grund habe ich die Not IsEmpty(S2)-Funktion eingesetzt. Ich habe sie jetzt ersetzt durch
    Len(S2) And (S2 <> "0")
    d.h. stehen jetzt in der String-Variablen S2 irgendwelche Zeichen drinnen und ist das dann ungleich dem Zeichen "0", dann soll die Verkettung zuschlagen.
    Code:
    Option Explicit
    
    Public Function StringErzeugen(rngZeile As Range, Optional Tr2$ = " ", Optional Tr1$ = " ") As String
      Dim S As String, Sp As Long
      Dim S1 As String, S2 As String
     
      S = ""
      With rngZeile
          For Sp = 1 To .Columns.Count Step 2
          
            S1 = .Cells(Sp): S2 = .Cells(Sp + 1)
            Select Case Sp
              Case 1, 3
                   If Len(S2) And (S2 <> "0") Then
                      S = S & S1 & Tr2 & S2
                   End If
              Case Else
                   If Len(S2) And (S2 <> "0") Then
                      S = S & Tr1 & S1 & Tr2 & S2
                   End If
            End Select
          Next Sp
      End With
     
      StringErzeugen = S
    
    End Function
    


    Geänderte Datei liegt bei.
     
    Exl121150, 27. Juli 2022
    #11
    1 Person gefällt das.
Thema:

Prüfen und Verketten von Zellen mit Formeln als Inhalt

Die Seite wird geladen...
  1. Prüfen und Verketten von Zellen mit Formeln als Inhalt - Similar Threads - Prüfen Verketten Zellen

  2. Zelle per VBA auf ihren Inhalt prüfen und reagieren sowie bei Änderung

    in Microsoft Excel Hilfe
    Zelle per VBA auf ihren Inhalt prüfen und reagieren sowie bei Änderung: Hallo zusammen, ich habe mit etwas verheddert und hoffe auf Eure Hilfe. Die Felder B111 und B112 sind zu Beginn LEER. B111 bietet ein Dropdown-Menü an, welches im Falle der Auswahl "Angebot mit...
  3. Prüfung unterschiedlicher Zellen auf Inhalt und Konsequenz

    in Microsoft Excel Hilfe
    Prüfung unterschiedlicher Zellen auf Inhalt und Konsequenz: Hallo zusammen, ich habe einen Code, bei dem ich mehrere voneinander getrennte Zellen auf Befüllung prüfe. Wenn ich mindestens eine nicht befülle, erscheint eine Fehlermeldung und das Script...
  4. mit String aus Formular Übereinstimmung in Abfrage prüfen

    in Microsoft Access Hilfe
    mit String aus Formular Übereinstimmung in Abfrage prüfen: Hallo liebe Mitglieder Ich verzweifle wieder einmal fast und wende mich an Euch. Ich möchte gern aus einem Formular heraus (Click) prüfen, ob übereinstimmende Datensätze in einer Abfrage vorhanden...
  5. Wartungstermine prüfen und ausgeben

    in Microsoft Excel Hilfe
    Wartungstermine prüfen und ausgeben: Guten Tag zusammen. Ich hoffe ihr könnt mir helfen. Ich möchte mir eine Übersicht erstellen, die mir anzeigt, ob eine Wartung überfällig ist oder nicht. Und zudem ausgibt, wie lange sie...
  6. zwei Zellen prüfen steht was drinnen dann schreib text

    in Microsoft Excel Hilfe
    zwei Zellen prüfen steht was drinnen dann schreib text: Hallo zusammen, mein Problem wenn in der Zelle A1 oder A2 größer 1 dann schreib Text in A3 VG Michael
  7. Mehrere Auswertungen zum prüfen von Nichtnormal- und Normalverteilung

    in Microsoft Excel Hilfe
    Mehrere Auswertungen zum prüfen von Nichtnormal- und Normalverteilung: Morgen, Ich hab eine Exceltabelle mit mehreren Tests erstellt, von Anderson-Darling bis Shapiro-Wilk. Ist noch nix aufgeräumt, noch Version 0.1 quasi. Sinn ist es 23 Zahlen zu prüfen die im...
  8. wert aus ComboBox prüfen dann hinzufügen

    in Microsoft Excel Hilfe
    wert aus ComboBox prüfen dann hinzufügen: Gutn Morgen zusammen, mit folgendem Code fülle ich meine ComboBox Private Sub UserForm_initialize() With ComboBox1 For Repeatings = 2 To...
  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