Formel ?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Formel ?
von: Sebator
Geschrieben am: 13.11.2003 14:43:05

Hallo zusammen,

ich habe folgendes Problem:

ich habe eine Excel Datei in der gibt es eine Spalte in der viele
Informationen stehen. Diese Informationen sind durch ein Semikolon (;) getrennt.

hier eine beispiel zeile :

33 Euro; 20. Monat; Status: Rot; Anmeldung: N; ; blz: 12345678 kto: 1234567890 owner: Hans Mustermann; 3Volt;

Jetzt möchte ich gern den ersten Wert (33 Euro) am Anfang der Spalte löschen und diesen Wert dann an die vorletzte Stelle einfügen.

so soll es aussehen

20. Monat; Status: Rot; Anmeldung: N; ; blz: 12345678 kto: 1234567890 owner: Hans Mustermann; 33 Euro; 3Volt;

gibt es dafür ne Formel oder wie kann man das am besten lösen.
Ich schätze mal hier sind die richtigen Cracks gefragt :)

Wäre schön wenn mir jemand helfen könnte. Ich brauche so schnell wie möglich eine Lösung.

Besten Dank

Sebator

Bild


Betrifft: AW: Formel ?
von: Harald Kapp
Geschrieben am: 13.11.2003 14:59:22

Hallo Seb,
per Formel wird das so einfach nix.
Entweder eine VBA-Prozedur, die den Teil bis zum ersten Semikolon ausschneidet und nach dem n-ten Semiklon einfügt.

oder mittels Daten->Text in Spalten->getrennt-> Trennzeichen=Semikolon die Daten in verschiedene Spalten separieren und anschließend die Spalten umsortieren.

gruß Harald


Bild


Betrifft: AW: Formel ?
von: Sebator
Geschrieben am: 13.11.2003 15:08:56

Das hab ich mir schon gedacht. Hmm, dann kann ich das wohl doch vergessen.
Naja, trotzdem Danke für die Antwort Harald

Gruß
Sebator


Bild


Betrifft: AW: Formel ?
von: Nayus
Geschrieben am: 13.11.2003 15:28:21

Hallo.
Per Formel geht das nicht.

Folgendes Makro erledigt die Aufgabe.
Bedingungen:
Deine Daten Stehen in Spalte A
Die Ausgabe erfolgt in Spalte B

Viel Erfolg,
Nayus


Sub tauschen()
Dim bProcced, bEur As Boolean
Dim iCnt, iSemiCnt As Integer
Dim tBuff, tEurBuff  As String
bProceed = True
'iCnt = Zeile, in der die Daten anfangen - 1
iCnt = 0
While bProceed = True
  iCnt = iCnt + 1
  ' Spalte A prüfen
  If ActiveSheet.Cells(iCnt, 1) = "" _
  Or IsNull(CVar(ActiveSheet.Cells(iCnt, 1))) _
  Or IsEmpty(CVar(ActiveSheet.Cells(iCnt, 1))) Then
    bProceed = False
  Else
    bEur = False
    tEurBuff = ""
    tBuff = ""
    iSemiCnt = 0
    For i = 1 To Len(ActiveSheet.Cells(iCnt, 1))
      If Not bEur Then
        tEurBuff = tEurBuff & Mid(ActiveSheet.Cells(iCnt, 1), i, 1)
        If Mid(ActiveSheet.Cells(iCnt, 1), i, 1) = ";" Then
          bEur = True
          Exit For
        End If
      End If
    Next i
   
    If bEur Then
      For j = Len(tEurBuff) + 1 To Len(ActiveSheet.Cells(iCnt, 1))
        If Mid(ActiveSheet.Cells(iCnt, 1), j, 1) = ";" Then
          iSemiCnt = iSemiCnt + 1
        End If
        
        tBuff = tBuff & Mid(ActiveSheet.Cells(iCnt, 1), j, 1)
        If iSemiCnt = 5 Then
           tBuff = tBuff & tEurBuff & Mid(ActiveSheet.Cells(iCnt, 1), j + 1)
           MsgBox tBuff
           Exit For
        End If
      Next
      ' Neuen String in Spalte B der aktuellen Zeile einfügen
      ActiveSheet.Cells(iCnt, 2) = tBuff
    End If
    
  End If
Wend
End Sub



Bild


Betrifft: AW: Formel ?
von: Sebator
Geschrieben am: 13.11.2003 17:01:51

YEAAAAAHHHH JUHU !!!! SUPER

Danke dir Nayus !!!!!!! vielen vielen DANK
Es funktioniert

Gruß
Sebator


Bild

Beiträge aus den Excel-Beispielen zum Thema " Formel ?"