Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Irgendwo klemmts

Forumthread: 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


Anzeige

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

Anzeige
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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige