Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Basiswissen für die Arbeit mit Excel 2007
3 Aufbau von Kalkulationstabellen
4 Entwicklung von Berechnungen mit Formeln
5 Gestaltung von Tabellenblättern
6 Auswertungen und Was-wäre-wenn-Analysen
7 Optimierungen
8 Grafische Präsentation von Daten
9 Diagramme optimal einsetzen
10 Tabellen grafisch aufbereiten
11 Verteilungsvorbereitung
12 Ausdruck und E-Mail-Versand
13 Excel-Daten im Web
14 Gemeinsame Arbeit an Arbeitsmappen
15 Tabellenfunktionen
16 Informationen als Tabellen ordnen und verwalten
17 Datenabfragen und Datenauszüge
18 Pivot–Tabellen und -Diagramme
19 Arbeit mit externen Daten
20 Datenaustausch zwischen Anwendungen
21 Datenaustausch mit anderen Anwendungen
22 Routineaufgaben mit Makros automatisieren
23 Visual Basic für Applikationen
A Tastenkombinationen
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Excel 2007 - Das umfassende Handbuch von Helmut Vonhoegen
Buch: Excel 2007 - Das umfassende Handbuch

Excel 2007 - Das umfassende Handbuch

1012 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-864-4
gp 23 Visual Basic für Applikationen
  gp 23.1 Grundlagen von VBA
    gp 23.1.1 Das Objektmodell von Excel
    gp 23.1.2 Variablen und Konstanten in VBA
    gp 23.1.3 Grundeinheiten und Sprachelemente
  gp 23.2 Die Entwicklungsumgebung
    gp 23.2.1 Projekt-Explorer und Modulfenster
    gp 23.2.2 Editierhilfen
    gp 23.2.3 Programme testen
    gp 23.2.4 Ausdruck von Code und Formularen
  gp 23.3 Ein- und Ausgabe
    gp 23.3.1 Einfacher Eingabedialog
    gp 23.3.2 Meldungsdialoge
    gp 23.3.3 Bereiche in Tabellen auswählen
    gp 23.3.4 Schreiben in Tabellen
    gp 23.3.5 Daten aus Tabellen auslesen
  gp 23.4 Entwurf von Formularen
    gp 23.4.1 Entwicklung eines Eingabeformulars
    gp 23.4.2 Eingabeelemente einbauen
    gp 23.4.3 Einbau von Schaltflächen
    gp 23.4.4 Eingabe der Prozeduren
    gp 23.4.5 Erweiterbare Werkzeugsammlung
  gp 23.5 Eigene Funktionen in VBA
    gp 23.5.1 Per Funktion von DM zu Euro und zurück
    gp 23.5.2 Sicherheit für Makros
  gp 23.6 Musterprozeduren für Standardaufgaben
    gp 23.6.1 Prozedur zum Neuformatieren
    gp 23.6.2 Beispiele für Plausibilitätsprüfungen
    gp 23.6.3 Daten aus einem Formular in eine neue Zeile einer Tabelle übernehmen
    gp 23.6.4 Lesen von Daten aus einer Textdatei
    gp 23.6.5 Einen Bereich neu definieren
    gp 23.6.6 Einen Wert in einer Spalte finden und ersetzen
    gp 23.6.7 In einer Liste von Arbeitsmappen Werte einfügen


Rheinwerk Computing

23.6 Musterprozeduren für Standardaufgaben  downtop

In diesem Abschnitt ist eine Reihe von Prozeduren zu häufig vorkommenden Aufgaben zusammengestellt, die Sie für eigene Entwicklungen auswerten können.


Rheinwerk Computing

23.6.1 Prozedur zum Neuformatieren  downtop

Wenn Ihnen die Formate in der Titelzeile Ihrer Arbeitsmappen nicht mehr gefallen, hilft ein kleines Makro, Schrift, Schriftfarbe und Zellhintergrund auszutauschen. Das Makro formatiert 25 Zellen der ausgewählten Zeile neu:

Sub titelersetzen() 
 
z = Selection.Row 
s = 1 
 
    For s = 1 To 25 
    Cells(z, s).Select 
    If Selection.Font.Name = "Arial" Then 
       Selection.Font.Name = "Verdana" 
       Selection.Font.ColorIndex = 2 
       Selection.Font.Size = 12 
    End If 
    If Selection.Interior.ColorIndex = 15 Then 
        Selection.Interior.ColorIndex = 16 
    End If 
    Next s 
 
Cells(z, 1).Select 
 
End Sub

Rheinwerk Computing

23.6.2 Beispiele für Plausibilitätsprüfungen  downtop

Vor dem nächsten Schritt in einem Programm, ist es häufig sinnvoll, bestimmte Daten auf Plausibilität zu prüfen.

Hier ein kleines Beispiel, bei dem geprüft wird, ob in einem benannten Bereich überhaupt Werte eingetragen worden sind. Dabei wird die Summenfunktion verwendet:

Set MBereich = Range("Mengen") 
Summe = Application.WorksheetFunction.Sum(MBereich) 
 
If Summe = 0 Then 
        MsgBox ("Keine Positionen eingetragen!") 
        Exit Sub 
End If

Rheinwerk Computing

23.6.3 Daten aus einem Formular in eine neue Zeile einer Tabelle übernehmen  downtop

Die folgenden Codezeilen setzen voraus, dass in einem Bestellformular Daten erfasst worden sind. Die Daten stehen in benannten Zellen und in der Positionszeile. Nun sollen sie an eine Liste der Bestelldaten angehängt werden:

Application.ScreenUpdating = False 
 
    ' Bestelldaten in Bestell-Liste übertragen 
    Sheets("BestellListe").Select 
    zeindex = 24 
 
    Do 
        Do While Worksheets("Bestellformular")._ 
                                           Cells(zeindex, 1) = "" 
        zeindex = zeindex + 1 
        Loop 
        If zeindex > 49 Then Exit Do 
 
        bestelldaten(1) = Range("Belegnummer") 
        bestelldaten(2) = Worksheets("Bestellformular")._ 
                                           Cells(zeindex, 2) 
        bestelldaten(3) = Worksheets("Bestellformular").- 
                                           Cells(zeindex, 3) 
        bestelldaten(4) = Worksheets("Bestellformular")._ 
                                           Cells(zeindex, 5) 
        bestelldaten(5) = Worksheets("Bestellformular")._ 
                                           Cells(zeindex, 6) 
        bestelldaten(6) = Worksheets("Bestellformular")._ 
                                           Cells(zeindex, 8) 
        bestelldaten(7) = Range("Liefnr") 
        bestelldaten(8) = Range("LiefName") 
        bestelldaten(9) = Range("Belegdatum") 
        bestelldaten(10) = Range("LiefTermin")

An dieser Stelle wird die erste freie Zeile in der Tabelle gesucht:

    If Range("A5") <> "" Then 
        Range("A4").End(xlDown).Select 
        ActiveCell.Offset(1, 0).Select 
    Else 
        Range("A5").Select 
    End If

Hier werden die Daten aus den Variablen in die neue Zeile der Tabelle übertragen:

    For i = 1 To 10 
        ActiveCell.Offset(0, i – 1).Value = bestelldaten(i) 
 
    Next i 
    zeindex = zeindex + 1 
 
    Loop 
 
   ' Belegnummer höher setzen und Bereiche löschen

Das Formular wird für die nächste Bestellung bereitgemacht:

    Sheets("Bestellformular").Select 
    ActiveSheet.Unprotect 
 
    Range("AktBelegnr").Value = Range("AktBelegnr").Value + 1 
    Range("LiefTermin").ClearContents 
    Range("Artikelnummern").ClearContents 
    Range("Mengen").ClearContents 
    Range("LiefNR").ClearContents 
    Range("Sachbearbeiter").ClearContents 
    Range("Versandart").ClearContents 
    Range("Bemerkung").ClearContents

Rheinwerk Computing

23.6.4 Lesen von Daten aus einer Textdatei  downtop

Auch ein Makro kann Daten aus einer Textdatei in ein Tabellenblatt einlesen. Verwendet werden dazu »alte« Basic-Befehle. Hier ein Beispiel, bei dem Firmendaten auf ein verstecktes Blatt übernommen werden. Die Textdatei enthält einen Feldnamen und einen Wert für das Feld. Die Zelle, in der der Wert abgelegt wird, wird mit dem betreffenden Feldnamen benannt:

Sub firmendaten_uebernehmen() 
 
    Dim FDatName ' Declare variables. 
    Dim FeldName() 
    Dim FeldWert() 
    i = 1 
    ReDim Preserve FeldName(i) 
    ReDim Preserve FeldWert(i)

Da der Zugriff auf die externe Datei auch scheitern kann, ist hier eine Fehlerbehandlung aktiviert:

   On Error GoTo errormessage 
   Application.ScreenUpdating = False 
 
    Sheets("Firmendaten").Visible = True 
    Sheets("Firmendaten").Select 
 
    FDatName = "Firma.txt” 
 
    Open FDatName For Input As #1 
 
    Line Input #1, FNamen ' Zeile in Variable einlesen. 
    Line Input #1, FWerte 
    Close #1    ' Datei schließen. 
 
    'Feldnamen und -werte auslesen 
 
    f = 1 
    w = 1 
    fpos = InStr(f, FNamen, trennzeichen) 
    wpos = InStr(w, FWerte, trennzeichen) 
 
    Do While fpos > 0 
      FeldName(i) = Mid$(FNamen, f, fpos – f) 
      FeldWert(i) = Mid$(FWerte, w, wpos – w) 
      i = i + 1 
      ReDim Preserve FeldName(i) 
      ReDim Preserve FeldWert(i) 
      f = fpos + 1 
      w = wpos + 1 
      fpos = InStr(f, FNamen, trennzeichen) 
      wpos = InStr(w, FWerte, trennzeichen) 
    Loop 
 
    FeldName(i) = Right$(FNamen, Len(FNamen) – f + 1) 
    FeldWert(i) = Right$(FWerte, Len(FWerte) – w + 1) 
    LetztIn = i 
 
    ' Feldnamen und Feldwerte auf Firmenblatt schreiben 
 
    izeile = 2 
    ispalte = 1 
 
    For i = 1 To LetztIn 
 
         Cells(izeile, ispalte).Value = FeldName(i) 
         Cells(izeile, ispalte + 1).Select 
         ActiveWorkbook.Names.Add Name:=FeldName(i), _ 
                                         RefersToR1C1:=Selection 
         Selection.Value = FeldWert(i) 
         izeile = izeile + 1 
 
    Next i 
   Application.ScreenUpdating = True 
   Exit Sub 
 
errormessage: 
 
    Fehler = Err.Description 
    MsgBox Fehler 
 
End Sub

Rheinwerk Computing

23.6.5 Einen Bereich neu definieren  downtop

Häufig ist es bei der Ausführung eines Makros notwendig, einen Tabellenbereich neu zu definieren. Hier ein einfaches Verfahren, das voraussetzt, dass der Bereich keine Leerzeilen enthalten kann:

Sub kundenbereichneu() 
 
    Range("A4").Select 
    ActiveCell.CurrentRegion.Select 
    Selection.Name = "Kunden" 
 
End Sub

Rheinwerk Computing

23.6.6 Einen Wert in einer Spalte finden und ersetzen  downtop

Mit den folgenden Anweisungen können Sie in einer Kundenliste in der betreffenden Spalte den Namen des Kunden suchen und dann in der dafür vorgesehenen Spalte den Wert für den aufgelaufenen Umsatz ändern.

    Sheets("Kundenliste").Select 
    Set zelle = Range("Kunden").Columns(1).Find(kundenname, _ 
                                               LookIn:=xlValues) 
    zelle.Select 
    ActiveCell.Offset(0, 9).Value = ActiveCell.Offset(0, 9) _ 
                                                    + rechbetrag

Rheinwerk Computing

23.6.7 In einer Liste von Arbeitsmappen Werte einfügen  toptop

Wenn Sie in einer Gruppe von Arbeitsmappen bestimmte benannte Werte einheitlich ändern oder etwa immer in der ersten Zeile eine bestimmte Beschriftung eintragen wollen, können Sie ein Makro schreiben, das dies erledigt. Kopieren Sie die Mappen in einen temporären Ordner, damit die Originaldateien zunächst unberührt bleiben.

Das Makro arbeitet dann alle Mappen in diesem Ordner nacheinander ab.

Sub Datenaustausch() 
    Dim f As String 
 
‘ Ausschalten von automatisch startenden Makros 
    Application.EnableEvents = False 
 
    Application.ScreenUpdating = False 
 
    f = Dir("C:\temp\*.xlsx") 
    Do Until f = "" 
        Workbooks.Open "C:\temp\" & f 
        MsgBox f 
 
        Range("MWST").Value = 16% 
        ActiveWorkbook.Save 
        ActiveWorkbook.Close 
        f = Dir() 
    Loop 
    Application.EnableEvents = True 
    Application.ScreenUpdating = True 
 
End Sub


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

 <<   zurück
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Excel 2007 - Das umfassende Handbuch
Excel 2007 -
Das umfassende
Handbuch

Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: VBA mit Excel






 VBA mit Excel


Zum Rheinwerk-Shop: Einstieg in VBA mit Excel






 Einstieg in VBA
 mit Excel


Zum Rheinwerk-Shop: Excel 2010 im Controlling






 Excel 2010
 im Controlling


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Visual C# 2012






 Visual C# 2012


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern