Hochzählen in VBA

Bild

Betrifft: Hochzählen in VBA
von: Jupp
Geschrieben am: 17.02.2005 21:47:19
Hallo Excel-Experten,
brauche mal professionelle Hilfe, für folgendes Problem:
ich habe bislang,unsere täglichen Wareneingänge mit folgender Formel realisiert
und zwar wie folgt:
Spalte "A" Zeile "17" "=WENN(B16="";"";A16+1)
bis
Spalte "A" Zeile "41" "=WENN(B40="":"";A40+1)
Spaltenwechsel
Spalte "G" Zeile "16" "=WENN(B40="";"";A41+1)
Spalte "G" Zeile "17" "=WENN(H16="";"";G16+1)
bis
Spalte "G" Zeile "26" "=WENN(H25="";"";G25+1)
Obige Formelei möchte ich gerne in VBA schreiben, habe aber keine Ahnung wie dass geht. Für Eure Mühe, möchte ich mich schon im voraus bedanken.
Mit freundlichen Grüssen
Jupp Thelen

Bild

Betrifft: AW: Hochzählen in VBA
von: Hans W. Hofmann
Geschrieben am: 17.02.2005 22:52:50
Hallo Jupp,
ein Profi setzt kein VBA ein, wenn es entsprechende Tabellenformeln gibt.
Gruß HW

WebSite:Excellenzen & Powerpoint interaktiv
PowerPoint-Anwendertreff: www.ppt-user.de

Bild

Betrifft: AW: Hochzählen in VBA
von: Jan
Geschrieben am: 17.02.2005 22:56:30
Hi,
du verwechselst Profi mit Demagoge. Ein Profi setzt das ein, was am sinnvollsten
und am speichersparensten ist. Für eine simple Nummerierung speicherresidente
Formeln einzusetzen ist nicht effektiv.
mfg Jan
Bild

Betrifft: AW: Hochzählen in VBA
von: Josef Ehrensberger
Geschrieben am: 17.02.2005 23:53:43
Hallo Jupp!
Wenn du das unbedingt mit VBA lösen willst, dann z.B. so!


      
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, i As Integer
'Nur wirksam bei Änderungen im Bereich "B16:B40" und "G16:G26"
If Not Intersect(Target, Range("B16:B40,G16:G26")) Is Nothing Then
On Error GoTo ERRORHANDLER
With Application
.EnableEvents = 
False      'Ereignisse ausschalten
.ScreenUpdating = False    'Bildschirmaktualisierung ausschalten
.Cursor = xlWait           'Cursor "ruhigstellen"
End With
   
'Alle Zellen des Bereiches durchlaufen
   For Each rng In Range("B16:B40,G16:G26")
   
   rng.Offset(0, -1) = 
""  '"Alte" Nummereierung entfernen
   
      
If rng <> "" Then    'Nummerierung neu setzen
         i = i + 1
         rng.Offset(0, -1) = i
      
End If
      
   
Next
End If
ERRORHANDLER:  
'Fehlerbehandlung

With Application
.EnableEvents = 
True     'Ereignisse einschalten
.ScreenUpdating = True   'Bildschirmaktualisierung einschalten
.Cursor = xlDefault
End With
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0

Kopiere den Code in das Modul der Tabelle.
(Rechtsklick auf Blattregister > Code Anzeigen > in das rechte Fenster einfügen!)

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Hochzählen in VBA
von: Jupp
Geschrieben am: 18.02.2005 10:01:02
Hallo Excel Experten,
Danke Dir Sepp, genau die Lösung !
Danke für eure Belehrungen, aber das TB wird täglich mehrmals gelöscht und wieder
neu beschrieben. Dabei passiert es immer wieder, dass die Formel in Spalte "A"
überschrieben wird.
Wegen dem Löschmakro, kann ich die Spalten nicht sperren.
Danke nochmals und ein schönes Wochenende
Jupp

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zahlenformate heraussuchen"