Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
956to960
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
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Irgendwo klemmts

Irgendwo klemmts
28.02.2008 08:47:06
Peter
Guten Tag
Mit nachfolgendem Code möchte ich bewirken, dass beim Verlassen des Worksheets mit Namen "CW" die Spalte 1 bis 26 durchsucht werden, ob dort ein String "*T.*" oder "*C.*" existiert und wenn ja, soll in der ersten Spalte, wo dies zutrifft in dieser Spalte alle Leerzeichen entfernt werden.
Der Code lief ursprünglich, wenn ich, ohne die Tabelle zu verlassen, das Makro aufgerufen habe. Da das ganze nun mit worksheet_deactivate laufen soll, habe ich versucht, die notwendigen Ergänzungen vorzunehmen, doch irgendwo klemmts, da der Code ohne Wirkung bleibt
(vgl. auch hochgeladene Tabelle https://www.herber.de/bbs/user/50239.xls )
mit dem nachstehend aufgeführten Code bei der Tabelle "CW".
Danke für jeden Hinweis.
Peter
Option Explicit

Sub worksheet_deactivate()
Application.StatusBar = ""
Dim i As Integer
Dim rng As Range
ThisWorkbook.Activate
With Application
For i = 1 To 26
If .CountIf(Sheets("CW").Columns(i), "*T.*") + .CountIf(Sheets("CW").Columns(i), "*C.* _
") _
> 0 Then
With Sheets("CW")
Set rng = .Range(.Cells(1, i), .Cells(Cells(.Rows.Count, i).End(xlUp). _
Row, i))
End With
Exit For
End If
Next
End With
If Not rng Is Nothing Then rng.Replace What:=" ", Replacement:="", LookAt:=xlPart
End Sub


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Irgendwo klemmts
28.02.2008 09:32:00
Lessie
Hi,
funktioniert doch - wenn keine Leerzeichen vorhanden sind, können auch keine entfernt werden.
Gruss

AW: Irgendwo klemmts
28.02.2008 09:49:00
Peter
Hallo Lessie
Tatsächlich! Ich habe festgestellt, dass ich "in der produktiven Umgebung" bereits in Spalte B irgendwelche Texte hatte, wo die Strings auch enthalten waren.
Vielen Dank, Peter

AW: Irgendwo klemmts
28.02.2008 12:41:26
fcs
Hallo Peter,
auch wenn der Code funktioniert, so ist die Syntax doch nicht 100%-ig "sauber". Aber Excel versteht dich scheinbar trotzdem - Glück gehabt.
Bei den Worksheet-Ereignismakros kann man mit der System-Variablen "Me" arbeiten, wenn sich die Objekte auf das Blatt selbst beziehen.
Nachfolgend der entsprechend bereinigte/aufbereitete Code.
Gruß
Franz

Private Sub Worksheet_deactivate()
Application.StatusBar = ""
Dim i As Integer
Dim rng As Range
With Application.WorksheetFunction
For i = 1 To 26
If .CountIf(Me.Columns(i), "*T.*") + .CountIf(Me.Columns(i), "*C.*") > 0 Then
With Me
Set rng = .Range(.Cells(1, i), .Cells(.Cells(.Rows.Count, i).End(xlUp).Row, i))
End With
Exit For
End If
Next
End With
If Not rng Is Nothing Then rng.Replace What:=" ", Replacement:="", LookAt:=xlPart
Application.StatusBar = False
End Sub


Anzeige
AW: Irgendwo klemmts
28.02.2008 14:34:08
Peter
Hallo Franz
Ich bin begeistert!
"Me" kannte ich (excel-mässig) noch nicht.
Vielen Dank.
Gruss, Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige