Thema Datum  Von Nutzer Rating
Antwort
01.08.2007 12:32:37 Friedrich Hofmann
Solved
Blau Aw:Auto-Ausfuellen fuer Makro
05.08.2007 16:53:14 Harry
NotSolved
07.08.2007 21:50:35 Friedrich Hofmann
NotSolved

Ansicht des Beitrags:
Von:
Harry
Datum:
05.08.2007 16:53:14
Views:
875
Rating: Antwort:
  Ja
Thema:
Aw:Auto-Ausfuellen fuer Makro
Hallo,
Mit dem Auto-... ist das so eine Sache. Es wird dann auch wirklich "nur" automatisch gemacht, ohne dass man ohne Weiters eingreifen kann.
Ich habe mir ein paar Gedanken zu Deinem Problem gemacht und ein kleines Makro geschrieben.
Um es zu nutzen öffnest Du eine leere Excel- Datei, mit wenigstens einem Tabellenblatt.
Dann startest Du den Makro Recorder (Makro aufzeichnen), gibst dem Makro einen Namen und einen Start- Buchstaben und bestätigst mit OK.
Anschließend beendest Du die Makro- Aufzeichnung.
Nun öffnest Du den Visual- Basic- Editor.
Links oben, im Verzeichnisbaum des VBAProjektes findest Du unter Module den Eintrag Modul1. Wenn Du darauf doppelklickst wird Dir die Code- Ansicht des Moduls, welches Du gerade erstellt hast angezeigt.
Kopiere nun folgende Code- Zeilen zwischen den, oben stehenden grünen Beschreibungstext und das, unten stehende End Sub :

Dim intZeilenZähler As Integer 'beinhaltet die Zeilen- Nr., in welche die Formel
'geschrieben werden soll
Dim intZeilenMax As Integer 'bis zu welcher Zeile kopiert werden soll
Dim varFormel As Variant 'beinhaltet die zu kopierende Formel hier z.B. A + B in
'der entsprechenden Zeile
Dim bytLeerZeilenIst As Byte 'wieviele Leerzeilen erkannt wurden
Dim bytLeerZeilenMax As Byte 'wieviele Leerzeilen akzeptiert werden sollen


'Setzen der Ausgangswerte
intZeilenZähler = 1 'muss so bleiben!
intZeilenMax = 10 'kann geändert werden
bytLeerZeilenIst = 0 'muss so bleiben!
bytLeerZeilenMax = 3 'kann geändert werden

'Start des Kopiervorganges
Do Until intZeilenZähler = intZeilenMax + 1
'die Formel der Variablen zuweisen
varFormel = "=A" & intZeilenZähler & "+B" & intZeilenZähler 'kann geändert werden
'Prüfen der links stehenden Zelle
If Sheets(1).Cells(intZeilenZähler, 2).Value = "" Or Not _
IsNumeric(Sheets(1).Cells(intZeilenZähler, 2).Value) Then
'die Anzahl der gefundenen Leerzeilen wird erfasst
bytLeerZeilenIst = bytLeerZeilenIst + 1
'eine Zeile wird bei Leerzeile übersprungen
intZeilenZähler = intZeilenZähler + 1
'Wenn die maximale Anzahl an Leerzeilen überschritten wird,
'wird das Programm abgebrochen
If bytLeerZeilenIst > bytLeerZeilenMax Then
MsgBox ("Die maximale Anzahl von tolerierten Leer- Zeilen ist überschritten!" & Chr(10) & _
"Der Vorgang wird abgebrochen."), vbCritical, Title:="Fehler"
Exit Sub
End If
Else
'Kopieren der Formel
Sheets(1).Cells(intZeilenZähler, 3).Value = varFormel
intZeilenZähler = intZeilenZähler + 1
End If
Loop

Speichern nicht vergessen, und schon ist das Makro betriebsbereit.
Ich habe das Makro so geschrieben, dass es in jeder Zeile die Werte aus den Spalten A und B in der Spalte C addiert.Wenn Du also nicht wenigstens in Spalte B eine Zahl schreibst wird keine Formel in Spalte C kopiert.

Viel Spass
Grüße von Harry

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
01.08.2007 12:32:37 Friedrich Hofmann
Solved
Blau Aw:Auto-Ausfuellen fuer Makro
05.08.2007 16:53:14 Harry
NotSolved
07.08.2007 21:50:35 Friedrich Hofmann
NotSolved