Thema Datum  Von Nutzer Rating
Antwort
22.04.2014 14:34:03 Tanja
NotSolved
22.04.2014 14:41:31 Gast29716
NotSolved
22.04.2014 17:20:54 gabi
NotSolved
23.04.2014 13:21:04 Tanja
NotSolved
23.04.2014 13:52:27 gabi
NotSolved
23.04.2014 14:04:27 gabi
NotSolved
24.04.2014 08:10:20 Tanja
NotSolved
24.04.2014 08:36:31 gabi
NotSolved
24.04.2014 15:36:25 gabi
NotSolved
25.04.2014 08:17:49 Tanja
NotSolved
25.04.2014 08:26:08 Tanja
NotSolved
25.04.2014 18:04:48 gabi
NotSolved
Rot OK - workaround
25.04.2014 21:40:18 gabi
NotSolved
28.04.2014 07:56:04 Gast92326
NotSolved
29.04.2014 08:07:45 Tanja
NotSolved
29.04.2014 18:31:05 gabi
NotSolved
29.04.2014 20:29:55 Gast88218
NotSolved
29.04.2014 20:54:09 gabi
NotSolved
30.04.2014 07:53:33 Tanja
NotSolved
30.04.2014 17:44:45 Gast35205
NotSolved

Ansicht des Beitrags:
Von:
gabi
Datum:
25.04.2014 21:40:18
Views:
915
Rating: Antwort:
  Ja
Thema:
OK - workaround

jetzt klappt mit deinen und dem MS Beispiel

Option Explicit

Sub InBlöcken()
Const tbStart As String = "A1"
Const intbSpalte As String = "B"

'für die Zeilen in tbStart-Spalte
Dim lngLetzte As Long 'letzte Zeile
Dim x As Long  'Schleife über tbStart-Spalte
Dim lngtbSpalte As Long 'Spaltennummer
Dim rngLetzte As Range  'letzte Zelle der Spalte

'hier wird der Code "Verdoppelt" gebraucht
Dim AbZelle As String
Dim NachSpalte As String

'letzte Zeile in "der" Spalte und dort die letzte Zelle
lngLetzte = Columns(Range(tbStart).Column).Find("*", Range(tbStart), _
  searchOrder:=xlByRows, searchdirection:=xlPrevious).Row
lngtbSpalte = Range(tbStart).Column
Set rngLetzte = Cells(lngLetzte, lngtbSpalte)

'durchlaufe "die" Spalte
For x = 1 To lngLetzte
  'prüfe auf kein Zahlenwert und nicht leer
  'If Not IsNumeric(Cells(x, lngtbSpalte).Value) And _
      Cells(x, lngtbSpalte).Value <> "" Then
  If IsNumeric(Cells(x, lngtbSpalte).Value) And _
      Cells(x, lngtbSpalte).Value <> "" Then
      
    AbZelle = Cells(x, lngtbSpalte).Address 'ab hier
    NachSpalte = intbSpalte 'dorthin schreiben
    BerVerdoppelt AbZelle, NachSpalte, rngLetzte  'Aufrufen und Startwerte übergeben
  End If
Next x

'
End Sub
 
Sub BerVerdoppelt(ByVal Start As String, ByVal inSpalte As String, _
  ByVal rngEnde As Range)
'die Startwerte wurden übergeben
Dim rngStart As Range
Dim rngSpalte As Range
Dim rngIst As Range
Dim lngNext As Long
Dim dblWsF  As Double, dblIst As Double

On Error GoTo errorhandler  'Fehler tritt ein wenn nicht rechenbar

  Set rngStart = Range(Start) 'Beginn
  Set rngSpalte = Range(rngStart.Offset(1, 0), rngEnde) 'Bereich ab Zelle darunter
  lngNext = Columns(inSpalte).Column - rngStart.Column 'im Abstand daneben schreiben
   
  For Each rngIst In rngSpalte  'durchlaufen
  ' so lange summieren, bis die neue Zahl die hinzukommt, das Ergebnis verdoppelt
    dblWsF = WorksheetFunction.sum(Range(rngStart, rngIst))
    dblIst = rngIst.Value + rngIst.Value
    
    If dblIst < dblWsF + 0.001 And dblIst > dblWsF - 0.001 Then
    'If 2 * rngIst.Value = WorksheetFunction.sum(Range(rngStart, rngIst)) Then
          rngIst.Offset(0, lngNext).Value = rngIst.Value  'ausgelesen und in eine Zelle geschrieben werden.
      Set rngStart = rngIst.Offset(1, 0)  'neuer Summenbeginn
    End If
  Next rngIst
   
Exit Sub
errorhandler:
End Sub

Und Tschüüss

 


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
22.04.2014 14:34:03 Tanja
NotSolved
22.04.2014 14:41:31 Gast29716
NotSolved
22.04.2014 17:20:54 gabi
NotSolved
23.04.2014 13:21:04 Tanja
NotSolved
23.04.2014 13:52:27 gabi
NotSolved
23.04.2014 14:04:27 gabi
NotSolved
24.04.2014 08:10:20 Tanja
NotSolved
24.04.2014 08:36:31 gabi
NotSolved
24.04.2014 15:36:25 gabi
NotSolved
25.04.2014 08:17:49 Tanja
NotSolved
25.04.2014 08:26:08 Tanja
NotSolved
25.04.2014 18:04:48 gabi
NotSolved
Rot OK - workaround
25.04.2014 21:40:18 gabi
NotSolved
28.04.2014 07:56:04 Gast92326
NotSolved
29.04.2014 08:07:45 Tanja
NotSolved
29.04.2014 18:31:05 gabi
NotSolved
29.04.2014 20:29:55 Gast88218
NotSolved
29.04.2014 20:54:09 gabi
NotSolved
30.04.2014 07:53:33 Tanja
NotSolved
30.04.2014 17:44:45 Gast35205
NotSolved