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

Leerzeichen Spalte automatisch entfernen

Leerzeichen Spalte automatisch entfernen
26.05.2023 10:21:52
Entwickler

Hallo

Ich brächte ein VBA coding. Das ich in das Arbeitsblatt "Tabelle1" einfügen kann.

Es müsste für die Spalte "C" immer wenn ich etwas hinzufüge oder rein kopiere alle Leerzeichen löschen, sodass der Text vollkommen zusammen ist.

Vielen Dank im voraus für das coding.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeichen Spalte automatisch entfernen
26.05.2023 10:57:33
GerdL
Moin
Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim C As Range
    
    If Not Intersect(Target, Columns(3)) Is Nothing Then
        For Each C In Intersect(Target, Columns(3))
            Application.EnableEvents = False
            C.Replace " ", ""
            Application.EnableEvents = True
        Next
    End If

End Sub
Gruß Gerd


AW: Leerzeichen Spalte automatisch entfernen
26.05.2023 12:10:11
Entwickler
Hallo Gerd

Super, Vielen Dank.:)


AW: Leerzeichen Spalte automatisch entfernen
26.05.2023 13:10:24
Entwickler
Hallo Gerd

Kannst du mir mit dem unten ersichtlichen Coding noch helfen. Zurzeit ist es nur für die Zellen die man markiert hat. Gerne würde ich es auf die ganze Spalte U (21) anpassen. So das alle Zellen gleichzeitig weitergeleitet werden.


Public Sub Zeile_verschieben_2(s1 As Worksheet, c1 As Range)

    Dim s2 As Worksheet

    If ((c1.Cells.Count = 1) And (c1.Column = 21)) Then
        Select Case c1.Value
            Case "":
                Set s2 = Nothing
            Case "Bezahlt":
                Set s2 = Worksheets("Bezahlte_Bestellungen")
            ' ...
            Case Else
                Set s2 = Nothing
                MsgBox "Gibt ein Zahlungsfehler"
        End Select
        If (Not s2 Is Nothing) Then
            s1.Rows(c1.Row).Cut Destination:=s2.Rows(s2.Cells(65536, 1).End(xlUp).Row + 1)
        End If
    End If

End Sub


Anzeige
AW: Leerzeichen Spalte automatisch entfernen
26.05.2023 14:04:01
GerdL
Hallo,

mir nicht bekannte Vorbedingungen habe ich weggelassen.
In ein allgemeines Modul einfügen.
Public Sub Zeilen_exportieren()

   
    Dim Zelle As Range, Kopie As Range, Ziel As Range
    
    
    For Each Zelle In ActiveSheet.Range("U2:U" & Cells(Rows.Count, "U").End(xlUp).Row)
        
        If UCase$(Zelle) = "BEZAHLT" Then
            If Kopie Is Nothing Then
                Set Kopie = Zelle.EntireRow
            Else
                Set Kopie = Union(Kopie, Zelle.EntireRow)
        End If
        
    Next
    
    If Not Kopie Is Nothing Then
    
        With Worksheets("Bezahlte_Bestellungen")
            Set Ziel = .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
        End With
        
        Kopie.Copy Destination:=Ziel
                
        'Kopie.Delete '=alte Zeile(n) löschen
        Kopie.ClearContents ' =Zelleninhalte in den alten Zeile(n) entfernen
        
        Set Kopie = Nothing: Set Ziel = Nothing
    
    End If
    
Gruß Gerd


Anzeige
AW: Leerzeichen Spalte automatisch entfernen
26.05.2023 14:24:29
Entwickler
Guten Nachmittag Gerd

Wow, eindrücklich dein Coding. Leider funktioniert es noch nicht ganz. Der Fehler ist mir nicht bekannt, da es keine Fehlermeldung gibt.
Unten habe ich dir mal ein Beispiel mit deinem Coding. Siehst du gerade was da falsch läuft?
https://www.herber.de/bbs/user/159336.xlsm
Vielen Dank für deine Bemühungen.


AW: Leerzeichen Spalte automatisch entfernen
26.05.2023 14:37:18
GerdL
Ja, da waren noch Teufelchen drin.
Und dieses Makro musst du der Schaltfäche1 zuweisen.
Public Sub Zeilen_exportieren()

   
    Dim Zelle As Range, Kopie As Range, Ziel As Range
    
    
    For Each Zelle In ActiveSheet.Range("U2:U" & ActiveSheet.Cells(Rows.Count, "U").End(xlUp).Row).Cells
        
        If UCase$(Zelle) = "BEZAHLT" Then
            If Kopie Is Nothing Then
                Set Kopie = Zelle.EntireRow
            Else
                Set Kopie = Union(Kopie, Zelle.EntireRow)
            End If
        End If
        
    Next
    
    If Not Kopie Is Nothing Then
    
        With Worksheets("Bezahlte_Bestellungen")
            Set Ziel = .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
        End With
        
        Kopie.Copy Destination:=Ziel
                
        'Kopie.Delete '=alte Zeile(n) löschen
        Kopie.Clear ' =Zelleninhalte der alten Zeile(n) entfernen
        
        Set Kopie = Nothing: Set Ziel = Nothing
    
    End If
    
    
End Sub

Gruß Gerd


Anzeige
AW: Leerzeichen Spalte automatisch entfernen
26.05.2023 14:43:54
Entwickler
Guten Tag Gerd

Super, hat funktioniert. Vielen Dank für dein Wissen. Leider sind die Leeren Zellen dann noch nach dem verschieben übrig. Kann man diese gleich mit dem coding löschen oder ist das nicht möglich?

Schönen Tag.


AW: Leerzeichen Spalte automatisch entfernen
26.05.2023 14:51:59
GerdL
Wenn du die Codezeile mit Kopie.Clear entfernst oder auskommentierst u. die Zeile mit Kopie.Delete nimmst,
wird gelöscht.
Ebenfalls noch einen schönen Freitag.
Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige