ersetzen und importieren

Sebozwei

Grünschnabel
Hi Leute
ich hab folgende Probleme:
1. Wie importiere ich eine Excel Tabelle bzw Daten aus einer Datei in eine andere mit Makros.
2. Wie stelle ich fest wieviel Zeilen diese Tabelle hat?
3. Wie kann ich in einer bestimmten Spalte alle Vorkommnisse eines gewissen Buchstabens ersetzten z.b. ö, a, ü, ß mit oe, ae, ue, ss?

Thx Sebo :-)
 
1. Makrorekorder aktivieren
2. Alle Schritte per Hand ausführen
3. Makrorekorder deaktivieren
4. Makro im VBA-Editor nachbearbeiten und anpassen
 
das mit der Anzahl der Datensätzen kann ich aber nicht mit Excel manuel feststellen...
außerdem würde der Benutzer ja dann das Kopieren etc sehn - gibt es nicht eine Möglichkeit das man im Hintergrund auf die Dateien zugreift?
 
Zuletzt bearbeitet:
Wenn du es unsichtbar willst müsstest du ein neues Excel-Objekt erstellen, visible auf false setzen und dann die entsprechenden Anweisungen ausführen.
Anzahl Datensätze könntest du z.B. in einer Schleife ermitteln.
 
Kann schon sein, wär mir aber nicht bekannt da ich selten Excel programmiere.
Kannst ja mal nach einer Dokumentation Googeln.
Falls du was findest bitte posten, würd mich auch interessieren ;)
 
Sheets bezieht sich auf die Blätter in der Arbeitsmappe.
Sheets ist eine Collection die alle Blätter enthält, mit Sheets(index) greift man auf bestimmte Blätter zu.
Code:
    Sheets.Count      'Anzahl der Blätter in der Mappe
    Sheets(1).Name    'Gibt den Namen des angegebenen Blattes wieder
 
so,
zu der ersten frage: Soll eine Tabelle bzw. Daten in eine neue Tabelle oder in eine bereits bestehende importiert werden?

zu der zweiten frage:
mit worksheets(1).rows.count zählst du alle vorhandenen Reihen in der ersten Tabelle, dies sind standartmäßig ungefähr 65000. du willst aber sicherlich alle Datenzeilen in einem bestimmten bereich zählen, die auch einen inhalt haben.
Dazu bennenst du zunächst deinen Datenbereich mit z.B. "Test". Anschließend folgendes Makro ausführen:

Code:
Public Sub zaehlen()
    Dim leer As Integer
    Set bereich = Worksheets(1).Range("test")
    leer = Application.WorksheetFunction.CountBlank(bereich.Columns(1))
    MsgBox (bereich.Rows.Count - leer)
End Sub
(Durch die Variable "leer" wird hier die Anzahl der Reihen abgezogen, die in der ersten Spalte leer sind, also keinen Eintrag haben.

zur dritten Frage:
Dies kannst du einfach mit der "Replace "-Funktion lösen
dies sieht dann zum beispiel so aus:

Code:
Public Sub umlaute()
    Dim leer As Integer
    Set bereich = Worksheets(1).Range("test")
    bereich.Select
    For Each a In Selection
        a.Value = Replace(a.Value, "ae", "ä")
        '...
    Next a
End Sub

gruß thekorn
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück