Thema Datum  Von Nutzer Rating
Antwort
29.01.2018 11:02:49 Lopal
NotSolved
29.01.2018 12:20:02 Uwe
NotSolved
29.01.2018 14:13:49 Lopal
NotSolved
29.01.2018 14:16:00 Uwe
NotSolved
29.01.2018 14:54:57 Uwe
NotSolved
29.01.2018 15:29:47 Gast31638
NotSolved
29.01.2018 15:42:35 Uwe
NotSolved
29.01.2018 15:45:44 Uwe
NotSolved
29.01.2018 15:54:21 Lopal
NotSolved
29.01.2018 15:56:56 Uwe
NotSolved
Rot Do until Schleife
29.01.2018 16:13:37 Lopal
NotSolved
29.01.2018 20:06:45 Uwe
Solved
29.01.2018 22:54:18 Lopal
Solved

Ansicht des Beitrags:
Von:
Lopal
Datum:
29.01.2018 16:13:37
Views:
637
Rating: Antwort:
  Ja
Thema:
Do until Schleife

Okay,

nun führt er es wieder aus, aber nicht in Schleife sondern nur eine Zeile.

In Spalte B steht momentan der linke untere Teil. nach Ausführung des Codes soll zeile B überschrieben werden und die Teile wie dargestellt auf einezelne Spalten aufgeteilt werden. Bis jetzt wird das aber nur auf die erste Zeile ausgeführt und nicht alle ausgefüllten.

B wird zu B C D E F G
 %%c0.15+2x0.20+3x0.30-7.0   0,15 0,2 0,2 0,3 0,3 0,3
 %%c3*0.50-12.0   0,5 0,5 0,5      
 %%c0.30-10.0   0,3          
 %%c0.35-10.0   0,35          
 %%c0.30-6.0   0,3          
 %%c0.25-6.0   0,25          
 %%c0.15-3.0   0,15          
 %%c0.30-6.0   0,3          
 %%c0.10+3*0.15-4.0   0,1 0,15 0,15 0,15    

 

Sub Baumdurchmesser4()
        
Dim rngCell As Excel.Range
Dim blnErr As Boolean
Dim n As Long
      
'um diese Zelle geht's
Set rngCell = Worksheets("Tabelle1").Range("B1")
      
'On Error GoTo Final
     With rngCell
    'reduziere den Zelleninhalt auf den Teil zwischen 'c' und '-'
    .Value = Mid$(.Value, InStr(.Value, "c") + 1, InStr(.Value, "-") - InStr(.Value, "c") - 1)
    'verw. Excel-Funktion: Daten -> TextInSpalten
    Call .TextToColumns(rngCell, xlDelimited, Other:=True, OtherChar:="+")
  End With
  On Error GoTo 0 'Fehlerunterdrückung: AUS
       
  'im folgenden wird solange Zelle um Zelle weiter nach rechts gesprungen
  'bis jene Zelle keinen Inhalt mehr hat, dabei wird ggf. der Faktor vor '*' behandelt
Do While rngCell <> ""
    'schaue ob Zelle ein '*' beinhaltet
    n = InStr(1, rngCell.Value, "*")
         
    'als nächstes wird ggf. der Zelleninhalt zerlegt
    'Inhalt Bsp: 3*0,5 wird zu: [n:=3] * [Ausdruck:=0,5]
    'entsprechend zu n werden zustäzliche Zellen eingefügt und mit Ausdruck belegt
    '(andere Daten werden dabei nach rechts verschoben)
         
    If n > 0 Then
      On Error Resume Next 'Fehlerunterdrückung: AN
      n = Left(rngCell.Value, n - 1)
      If Err.Number <> 0 Then
        On Error GoTo 0 'Fehlerunterdrückung: AUS
        blnErr = True
        n = 1
      ElseIf n > 1 Then
        'Zelleninhalt um den Ausdruck 'n*' kürzen
        rngCell.Value = Mid(rngCell.Value, InStr(1, rngCell.Value, "*") + 1)
        rngCell.Value = rngCell.Value * 1 'versuche Zelleninhalt als Zahl zu formatieren
        On Error GoTo 0 'Fehlerunterdrückung: AUS
        'füge zusätzlichen Zellen ein
        Call rngCell.Resize(, n - 1).Offset(, 1).Insert(xlShiftToRight)
        rngCell.Resize(, n).Value = rngCell.Value 'kopiere Inhalt auf Zellen
      End If
    Else
      n = 1
    End If
    Set rngCell = rngCell.Offset(0, 1)  'rngCell um Offset(Zeile,Spalte) versetzen
 
Final:
Loop

End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
29.01.2018 11:02:49 Lopal
NotSolved
29.01.2018 12:20:02 Uwe
NotSolved
29.01.2018 14:13:49 Lopal
NotSolved
29.01.2018 14:16:00 Uwe
NotSolved
29.01.2018 14:54:57 Uwe
NotSolved
29.01.2018 15:29:47 Gast31638
NotSolved
29.01.2018 15:42:35 Uwe
NotSolved
29.01.2018 15:45:44 Uwe
NotSolved
29.01.2018 15:54:21 Lopal
NotSolved
29.01.2018 15:56:56 Uwe
NotSolved
Rot Do until Schleife
29.01.2018 16:13:37 Lopal
NotSolved
29.01.2018 20:06:45 Uwe
Solved
29.01.2018 22:54:18 Lopal
Solved