Microsoft Excel

Herbers Excel/VBA-Archiv

Text zwischen Klammern in Nachbarzelle verschiebe


Betrifft: Text zwischen Klammern in Nachbarzelle verschiebe von: Albin
Geschrieben am: 17.01.2019 17:49:59

Hallo Zusammen

Habe mal eine Bitte an Euch, komme nicht weiter und finde auch Nix im WEB.

Aufgabe: Die Zahl Text Wert zwischen den Klammern Spalt D in die Nachbarzelle
von E kopieren. Danach die Zahl/Text/Wert zwischen den Klammer und die Klammern
selber in Spalte D löschen. Das Ganze ab Zeile 7. Ob das Komma bleibt oder
gelöscht wird, spielt keine Rolle.

Bitte wenn es geht, ein VBA-Makro.

https://www.herber.de/bbs/user/126871.xlsm

Ich danke Euch im Voraus.

LG
Albin

  

Betrifft: AW: Text zwischen Klammern in Nachbarzelle verschiebe von: Beverly
Geschrieben am: 17.01.2019 18:23:51

Hi Albin,

meinst du so etwas:

Sub Auszug()
    Dim lngZeile As Long
    For lngZeile = 7 To 26
        Cells(lngZeile, 4) = Split(Cells(lngZeile, 3), ",")(0)
        Cells(lngZeile, 5) = Application.Substitute(Application.Substitute(Split(Cells(lngZeile, _
 3), ",")(1), "(", ""), ")", "") * 1
    Next lngZeile
End Sub

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Text zwischen Klammern in Nachbarzelle verschiebe von: Albin
Geschrieben am: 17.01.2019 21:21:34

Hoi Beverly

Das ging ja Super schnell. Danke für die grosse Hilfe. Habe deine Cells sehr gut brauchen können. Ich habe noch zusätzlich eine LastRow eingebaut, denn es können bis 1000 oder mehr Zeilen sein.

Zwar kann ich nun das Macro sehr gut gebrauchen, muss aber einen Umweg machen mit einer neuen leeren Spalten und wieder eine löschen. Weil der Text aus Spalte D aufteilt in Spalte E und F. Das Ziel wäre eigentlich gewesen. Der Wert zwischen den Klammern soll auf E verschoben werden und in der Spalte D, soll diesen Eintrag gelöschen werden.


LG
Albin

Sub Auszug()

Dim c As Long, r As Long
Dim FirstRow As Long, LastRow As Long
    
c = 4
  
FirstRow = 7
LastRow = Cells(Rows.Count, c).End(xlUp).Row ' Letzte Zeile

For r = FirstRow To LastRow
        Cells(r, 5) = Split(Cells(r, 4), ",")(0)
        Cells(r, 6) = Application.Substitute(Application.Substitute(Split(Cells(r, _
 4), ",")(1), "(", ""), ")", "") * 1

    Next r
End Sub



  

Betrifft: Ohne Schleife von: Sepp
Geschrieben am: 17.01.2019 22:04:14

Hallo Albin,

Sub splitText()

Application.DisplayAlerts = False

With Sheets("davor")
  With .Range("C7:C" & Application.Max(7, .Cells(.Rows.Count, 3).End(xlUp).Row))
    Call .Replace(What:=")", Replacement:="")
    Call .Replace(What:=",", Replacement:="")
    Call .TextToColumns(Destination:=.Cells(1, 1), DataType:=xlDelimited, Tab:=False, _
      Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="(")
  End With
End With

Application.DisplayAlerts = True
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: Ohne Schleife von: Albin
Geschrieben am: 17.01.2019 23:25:47

Einfach fast Perfekt!

Läuft superschnell. Trotzdem kleine Anfrage an Dich, wenn es in den Zeile F... und so weiter Werte drin hat, werden diese leider gelöscht. :-( Wie kann man das verhindern?

Habe dein Marko noch auch Spalte D ungestellt, da ich die Werte nach einem Import im D habe.

Sub splitText()

Application.DisplayAlerts = False

With Sheets("MailPdf1")
  With .Range("D7:D" & Application.Max(7, .Cells(.Rows.Count, 4).End(xlUp).Row))
    Call .Replace(What:=")", Replacement:="")
    Call .Replace(What:=",", Replacement:="")
    Call .TextToColumns(Destination:=.Cells(1, 1), DataType:=xlDelimited, Tab:=False, _
      Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="(")
  End With
End With

Application.DisplayAlerts = True
End Sub

Gruss
Albin


  

Betrifft: AW: Ohne Schleife von: Sepp
Geschrieben am: 17.01.2019 23:40:29

Hallo Albin,

also bei mir wird in den nachfolgenden Spalten nichts gelöscht!


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: Ohne Schleife von: Albin
Geschrieben am: 18.01.2019 00:03:51

Hoi Sepp

Sorry, war ein Fehler bei mir. Habe es noch mals auf einem ganz neue File versucht und
siehe da. Die Texte danach bleiben.

Nochmals danke für die Profilösung.

Eine gute Nacht wünsche ich Dir.
albin


Beiträge aus dem Excel-Forum zum Thema "Text zwischen Klammern in Nachbarzelle verschiebe "