Anzeige

VBA
Programmierer
gesucht?
 
Anzeige
VBA Programmierer gesucht?
 

VBA Codeschnipselsammlung

Formeln automatisch in Tabelle vervollständigen

Vielleicht kennen Sie diese Situation auch. Sie haben eine Tabelle und erweitern diese stetig. Nun möchten Sie auch die Formeln automatisch erweitern lassen. Hier ein visualisiertes Beispiel:

  A B C D E
 1  Formelspalte Wertespalten Weitere Spalten                      
 2  =ZS2*2 1      
 2  =ZS2*2 2      
 2    3      
 2    4      

Und das Ergebnis nach dem Vervollständigungsmakro sollte so aussehen:

  A B C D E
 1  Formelspalte Wertespalten Weitere Spalten                      
 2  =ZS2*2 1      
 2  =ZS2*2 2      
 2  =ZS2*2 3      
 2  =ZS2*2 4      


Für diese Vervollständigungsarbeit finden Sie folgend ein Beispielmakro.

Option Explicit
' ************************************************************************************************
' Autor/en: http://www.online-vba.de - Marc Wershoven
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von www.online-vba.de!
' Original-Quelltext: www.online-vba.de/vba_formelnvervoll.php
' ************************************************************************************************


Public Sub MWFormelnInTabelleAutomatischVervollstaendigen()
   Dim z As Long
   Dim s As Long
   Dim lPruefSpalte As Long
    
     lPruefSpalte = 1 'Wenn in dieser Spalte etwas steht wird die Formel vervollständigt
     With ActiveSheet
         For z = .UsedRange.Row To .UsedRange.Row + .UsedRange.Rows.Count - 1
            
             'Die erste Zeile wird als Vorlage verwendet,
             'bei vorhandenen überschriften in der Tabelle die Zweite (+1)!
             If z > .UsedRange.Row + 1 And Trim(CStr(.Cells(z, lPruefSpalte).Value)) <> "" Then
                 For s = .UsedRange.Column To .UsedRange.Column + .UsedRange.Columns.Count - 1
                    
                     'Wenn eine Formel in der Zelle drüber steht und in der aktuellen Zelle nicht,
                     'wird die Formel kopiert
                     If .Cells(z - 1, s).HasFormula = True And .Cells(z, s).HasFormula = False Then
                         .Cells(z, s).FormulaR1C1 = .Cells(z - 1, s).FormulaR1C1
                     End If
                    
                 Next s
             End If
            
         Next z
     End With
    
     MsgBox "Fertig!"
End Sub


Autor: Marc Wershoven (Mai 2014)

Anzeige

VBA Programmierer gesucht?
http://www.WershovenOnline.de

Anzeige

Der Quick E-Mail Support von WershovenOnline®

Schnelle Hilfe bei Fragen rund um Microsoft® Office und VBA Makros

Der Quick E-Mail Support von WershovenOnline® Sie haben beispielsweise eine Frage zu einer Ihrer eigenen Makroprogrammierungen in VBA? Oder Sie suchen Unterstützung und Informationen über eine bestimmte Microsoft® Excel® Formel? Bei nahezu allen Fragen und Problemen rund um Microsoft® Office und VBA Makros steht Ihnen unser individueller Quick E-Mail Support zur Verfügung. Einfach, schnell und unkompliziert Ihre Frage in einer E-Mail formulieren, mit oder ohne Screenshots oder einer Beispieldatei absenden und kurze Zeit später haben Sie eine vollständige Lösung inkl. ausführlicher Erklärung vom Profi in Ihrem Postfach! Zusätzlich besteht die Option, dass wir uns mittels Fernwartung (selbstverständlich nach Ihrem Einvertändnis) direkt "live" mit Ihnen zusammen an Ihrem Bildschirm gemeinsam Fragen und Problemstellungen anschauen und lösen können!

Weitere Informationen zu diesem kostenpflichtigen Angebot finden Sie auf der Anbieterseite von WershovenOnline® auf www.wershovenonline.de.

Zum Anbieter des Quick-E-Mail-Support...

Zum Seitenanfang