Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Teiltext in Zellen Löschen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Teiltext in Zellen Löschen (1405 mal gelesen)
moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


Sehen Sie sich das Profil von moppesle an!   Senden Sie eine Private Message an moppesle  Schreiben Sie einen Gästebucheintrag für moppesle

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 28. Feb. 2014 15:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

bin leider nicht so bewandert was die Makroprogrammierung betrifft.

Habe mir ein Makro gebastelt das mir aus einem bestehenden Sheet die Zeilen in ein neues Sheet umsortiert.
Funzt soweit wunderbar.
Nun möchte ich eine Text aus bestimmten Zellen bis zu einem String löschen.

Beispiel:
Ausgangssituation: "777777W04A"
Ergebniss soll sein "W04A"
Man könnte alles bis zu dem "W" weglöschen, da sich die Zahlen nachfolgend ändern können.


Wie kann ich das in mein Makro einbinden?
Die Werte befindet sich in der Spalte "B" die dann in die entsprechenden Zeilen im neuen Sheet übertragen werden.

Hier mal mein Code
Ensprechende Zeile ist "Fett" markiert.

Code:
Private Sub CommandButton1_Click()
'Stückliste

Dim LetzteZeile        As Integer
Dim sht                As Worksheet
Dim sNameNewWorksheet  As String
Dim wAktivWorkbook      As Workbooks
Dim i                  As Integer
Dim e                  As Integer
Dim sQuellsht          As String
Dim sNameOldWorksheet  As String

sNameNewWorksheet = "Stückliste_neu"
sQuellsht = "Stuecklistenrelevant"
sQuellsht = "Stuecklistenrelevant"

For Each sht In Worksheets
    If sht.Name = sNameNewWorksheet Then
        'MsgBox "Tabellenblatt vorhanden"
        Worksheets(sNameNewWorksheet).Delete
        MsgBox sNameNewWorksheet & " wurde gelöscht und wird neu generiert!"
        Exit For
    End If
Next

Worksheets.Add.Move after:=Worksheets(Worksheets.Count) 'Tabellenblatt an letzter Stelle einfügen
ActiveSheet.Name = sNameNewWorksheet 'Tabellenblatt unbenennen
Worksheets("Stuecklistenrelevant").Activate 'Tabellenblatt Stuecklistenrelevant aktivieren

LetzteZeile = Cells.Find("*", searchdirection:=xlPrevious).Row 'Letzte Zeile finden
LetzteZeile = LetzteZeile + 2 'Letzte Zeile plus 2

    For Each sht In ActiveWorkbook.Worksheets

     
            If sht.Name = sNameNewWorksheet Then
                'nichts, da dies deine Zieltabelle ist
                If sht.Name = sNameOldWorksheet Then
                    'nichts, da dies deine Zieltabelle ist
                    Else
                        i = 8
                        e = 7
                        Do Until i = LetzteZeile
                        Sheets(sNameNewWorksheet).Range("E1") = Sheets(sQuellsht).Range("E4") 'Kopfwerte kopieren
                        Sheets(sNameNewWorksheet).Range("H2") = Sheets(sQuellsht).Range("G4") 'Kopfwerte kopieren
                   
                        Sheets(sNameNewWorksheet).Range("B" & i) = Sheets(sQuellsht).Range("B" & e) 'Zellen kopieren
                        Sheets(sNameNewWorksheet).Range("C" & i) = Sheets(sQuellsht).Range("E" & e)
                        Sheets(sNameNewWorksheet).Range("D" & i) = Sheets(sQuellsht).Range("C" & e)
                        Sheets(sNameNewWorksheet).Range("E" & i) = Sheets(sQuellsht).Range("H" & e)
                        Sheets(sNameNewWorksheet).Range("F" & i) = Sheets(sQuellsht).Range("D" & e)
                        Sheets(sNameNewWorksheet).Range("G" & i) = Sheets(sQuellsht).Range("J" & e)
                        Sheets(sNameNewWorksheet).Range("H" & i) = Sheets(sQuellsht).Range("G" & e)
                        Sheets(sNameNewWorksheet).Range("I" & i) = Sheets(sQuellsht).Range("I" & e)
                        Sheets(sNameNewWorksheet).Range("K" & i) = Sheets(sQuellsht).Range("K" & e)
       
                        i = i + 1
                        e = e + 1
       
                        Loop
                End If
            End If
    Next
   
Worksheets(sNameNewWorksheet).Activate
Worksheets(sNameNewWorksheet).Columns.AutoFit
Worksheets(sNameNewWorksheet).Range("A1").Select

End Sub


Danke schonmal für Euren Hirnschmalz.  


------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 28. Feb. 2014 16:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für moppesle 10 Unities + Antwort hilfreich

mir fällt grad nix besseres ein als eine schleife
Code:
Sub test()
'Sheets(sNameNewWorksheet).Range("H2") = Sheets(sQuellsht).Range("G4") 'Kopfwerte kopieren

txt = Sheets(sQuellsht).Range("B" & e)
txt = "77777w1234"   'teststring

For ii = 1 To Len(txt)
    If Not IsNumeric(Mid(txt, ii, 1)) Then  'prüfe ob keine Zahl
       newString = newString & Mid(txt, ii, 99)  'Sheets(sNameNewWorksheet).Range("B" & i) =
       ii = Len(txt)
    End If
Next

Sheets(sNameNewWorksheet).Range("B" & i) = newString

'Sheets(sNameNewWorksheet).Range("C" & i) = Sheets(sQuellsht).Range("E" & e)

End Sub


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 28. Feb. 2014 17:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für moppesle 10 Unities + Antwort hilfreich

Hi Uwe,

Code:
Sub Entfernen()
  Dim lngZeile As Long
  Dim strWert As String
  For lngZeile = 1 To 10  '<== Zeilenanzahl anpassen
      If IsNumeric(Left(Cells(lngZeile, 2), 1)) Then
        strWert = Val(Cells(lngZeile, 2))
        Cells(lngZeile, 2) = Mid(Cells(lngZeile, 2), Len(strWert) + 1)
      End If
  Next lngZeile
End Sub

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 03. Mrz. 2014 11:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für moppesle 10 Unities + Antwort hilfreich

Ungefragt, aber möglich und viiiiiiiiiiiiiiiel kürzer  : Ohne Makro, wenn Textlänge immer gleich

=RECHTS(DeinText;4)

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


Sehen Sie sich das Profil von moppesle an!   Senden Sie eine Private Message an moppesle  Schreiben Sie einen Gästebucheintrag für moppesle

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 05. Mrz. 2014 16:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo ihr drei, 

habe mir die Variante von Thomas eingebaut.

Diese habe ich am besten nachvollziehen können.

@Paulchen. Danke auch für deinen Denkanstoß. Ich musste das ganze in mein Makro einbauen.


Danke nochmal.

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz