Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1060to1064
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Multiplikation mit Konstante

Multiplikation mit Konstante
16.03.2009 12:44:54
Lucia
Hallo zusammen,
In einem File werden txt. Dateien importiert, um sie dann weiterzuverwenden.
Dabei auch Beträge in €, welche auf dem ersten Schuss nicht berechenbar sind.
Manuell müsste ich nun die ganze Spalte mit 1 multiplizieren, was ich natürlich nicht immer will.
Das sollte über ein Makro laufen
Im Forum habe ich jetzt dieses Makro gefunden, was auch erstmal klappt:
Option Explicit

Sub Multiplizieren()
Dim Eingabe As String
Dim Faktor As Double
Dim Zelle As Range
On Error GoTo FEHLER
Eingabe = InputBox("Faktor eingeben!", "Mit Faktor multiplizieren", 2.5)
Faktor = CDbl(Eingabe)
For Each Zelle In Selection
Zelle.Value = Zelle.Value * Faktor
Next Zelle
Exit Sub
FEHLER:
MsgBox "Leider ein Fehler!", vbCritical, "FEHLER"
End Sub


Folgendes passiert jetzt, wenn ich den Faktor 1 eingebe:
- die Beträge sind in der Folgenden Schreibweise importiert: 1,000.99, aus diesen tausen Euro werden durch die Multiplikation 1 € - doof.
- Die Spalten mit den Beträgen sind Teilweise unterbrochen durch textzeile o.ä. (das macht das ERP System, um Seiten zuteilen), wenn ich die gesamte Spalte markiere und das Makro durchlaufen lasse, zeigt er mir einen Fehler an. Markiere ich nur einen Bereich wo Werte drin sind funktionierts, ist aber aufwendig.
Was kann ich tun?
Danke schonmal,
Lucia

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Multiplikation mit Konstante
16.03.2009 12:51:35
Hajo_Zi
Hallo Lucia,
1,00... ist nun maal ein Euro es sei Du stellst das Dezimaltrennzeichen um.

AW: Multiplikation mit Konstante
16.03.2009 12:56:46
Lucia
Servus,
In der Schreibweise für Dollar bzw. mit dem was das ERP dort rechnen aber leider nicht, da ist das dann das Trennzeichen für Tausend.
Wie stelle ich das Dezimaltrennzeichen am geschicktesten für alle um? Am besten noch vermeiert mit dem Makro?
AW: Multiplikation mit Konstante
16.03.2009 13:01:27
Hajo_Zi
Hallo Lucia,
das Dezimaltrennzeichen kannst Du für eine Datei umstellen. Office Symbol, Excel Optionen, Erweitert, Option bearbeiten unten.
Insgesamt fü den Rechner geht es nur über Systemsteuereung, Region und Sprachoptionen. Das gilt dann aber für alle Programme.
Gruß Hajo
Anzeige
AW: Multiplikation mit Konstante
16.03.2009 13:13:39
Lucia
Servus,
Ja...bringt leider nichts, weil irgendwas an dem Makro nicht will. Ich habe im Vergleich dazu mal die manuelle Methode:
wir schreiben den Wert "1" in eine Zelle - kopieren - einfügen in Bereich mit multiplizieren
probiert, da funktioniert es.
Wie bekomme ich diesen Vorgang in mein Makro, ohne dass er mir das kaputt macht?
AW: Multiplikation mit Konstante
16.03.2009 13:22:50
Hajo_Zi
Hallo Lucia,
die wenigsten kenne Deine Datei und Dein Makro. Vielleicht soltest Du die mal hochladen?
Gruß Hajo
AW: Multiplikation mit Konstante
16.03.2009 13:31:45
Tino
Hallo,
hier mal eine Variante.
Sub Multiplizieren()
Dim Eingabe As String
Dim Faktor As Double
Dim Zelle As Range
Dim KommaOderPunk As String

KommaOderPunk = IIf("0.5" * 2 = 1, ".", ",")

On Error GoTo FEHLER
         Eingabe = InputBox("Faktor eingeben!", "Mit Faktor multiplizieren", 2.5)
         Faktor = CDbl(Eingabe)
         
         For Each Zelle In Selection
              Zelle.Value = Replace(Replace(Zelle.Text, ",", ""), ".", KommaOderPunk) * Faktor
         Next Zelle
         
         Exit Sub
FEHLER:
         MsgBox "Leider ein Fehler!", vbCritical, "FEHLER"
End Sub


Gruß Tino

Anzeige
AW: Multiplikation mit Konstante
16.03.2009 13:42:18
Lucia
Hi,
Danke...das klappt schon mal:-) Bin gerade am vergeblichen Versuchen die Datei hochzuladen...aber da hier grad mächtig Stau auf der Datenbahn (Telko mit Indien oder so) ist, dauerts noch!!! Aber ich werde liefern. :-)
Zum Makro: Also die, die den ersten Thread lesen kennen auch das Makro.
Bleibt die Frage, wie man es hinbekommt, dass man einfach die ganze Spalte markiert und das Makro durchgeführt wird, ohne dass die Fehlermeldung kommt, weil zwischen drin Zeilen mit geschriebenem Text oder auch horizontalen Linien sind.
Dann wäre mein Tag vorerst gerettet.
Gruß,
Lucia
Anzeige
AW: Multiplikation mit Konstante
16.03.2009 13:49:40
mpb
Hallo Lucia,
wenn es unbedingt bei dem Makro bleiben soll, ändere die Fehlerbehandlung (ungetestet):

Sub Multiplizieren()
Dim Eingabe As String
Dim Faktor As Double
Dim Zelle As Range
Dim KommaOderPunk As String
KommaOderPunk = IIf("0.5" * 2 = 1, ".", ",")
Eingabe = InputBox("Faktor eingeben!", "Mit Faktor multiplizieren", 2.5)
Faktor = CDbl(Eingabe)
On Error Resume Next
For Each Zelle In Selection
Zelle.Value = Replace(Replace(Zelle.Text, ",", ""), ".", KommaOderPunk) * Faktor
Next Zelle
End Sub


Gruß
Martin

AW: Multiplikation mit Konstante
16.03.2009 14:11:55
Lucia
Hi Martin,
Das ohne Prüfung nehme ich gerne.
Das File braucht halt jetzt ein bischen bis es durch ist...aber das ist abzuwarten.
Kleines Gimmick wäre eine Eingabe bis zu welcher Zeile das ganze gespiel werden soll....
Aber wie gesagt...Gimmick, ich bin euch so auch schon dankbar:-)
Gruß,
Lucia
Anzeige
AW: Multiplikation mit Konstante
16.03.2009 15:41:18
mpb
Hallo Lucia,
zur Beschleunigung vor der "For..."-Zeile einfügen:
Application.ScreenUpdating = False
vor "End Sub" einfügen
Application.ScreenUpdating = True
Zum Gimmick: Das Makro durchläuft doch den markierten Bereich, wozu brauchst Du dann noch die "letzte" Zeile? In welchem Bereich stehen denn die Daten?
Gruß
Martin
AW: Multiplikation mit Konstante
16.03.2009 16:28:44
Tino
Hallo,
wenn es zu lange braucht, versuch es mal mittels Area.
Sub Multiplizieren()
Dim Eingabe As String, KommaOderPunk As String
Dim Faktor As Double
Dim Zelle As Range
Dim myAr, strWert
Dim A As Long, B As Long

KommaOderPunk = IIf("0.5" * 2 = 1, ".", ",")


 Eingabe = InputBox("Faktor eingeben!", "Mit Faktor multiplizieren", 2.5)
 
 Eingabe = Replace(Eingabe, ",", KommaOderPunk)
 Eingabe = Replace(Eingabe, ".", KommaOderPunk)
 Faktor = CDbl(Eingabe)
 
 On Error GoTo FEHLER
 
    myAr = Selection
    For A = 1 To Ubound(myAr)
       For B = 1 To Ubound(myAr, 2)
         If myAr(A, B) <> "" Then
             strWert = Replace(Replace(myAr(A, B), ",", ""), ".", KommaOderPunk)
             If IsNumeric(myAr(A, B)) Then
                myAr(A, B) = strWert * Eingabe
             End If
         End If
       Next B
    Next A

    Selection = myAr
    Exit Sub
FEHLER:

MsgBox "Leider ein Fehler!", vbCritical, "FEHLER"
End Sub


Gruß Tino

Anzeige
AW: Multiplikation mit Konstante
16.03.2009 13:58:50
Tino
Hallo,
bauen wir noch eine Prüfung mit ein, die prüft ob der Wert eine Zahl ist.
Sub Multiplizieren()
Dim Eingabe As String
Dim Faktor As Double
Dim Zelle As Range
Dim KommaOderPunk As String, strWert

KommaOderPunk = IIf("0.5" * 2 = 1, ".", ",")

On Error GoTo FEHLER
         Eingabe = InputBox("Faktor eingeben!", "Mit Faktor multiplizieren", 2.5)
         Faktor = CDbl(Eingabe)
         
         For Each Zelle In Selection
           strWert = Replace(Replace(Zelle.Text, ",", ""), ".", KommaOderPunk)
           If IsNumeric(strWert) Then
              Zelle.Value = strWert * Faktor
           End If
         Next Zelle
         
         Exit Sub
FEHLER:
         MsgBox "Leider ein Fehler!", vbCritical, "FEHLER"
End Sub


Gruß Tino

Anzeige
Daten-Text in Spalten owT
16.03.2009 13:17:58
D.Saster
AW: BEARBEITEN-ERSETZEN
16.03.2009 13:30:28
mpb
Hallo Lucia,
arbeite mit BEARBEITEN-ERSETZEN. Bereich markieren, im ersten Durchlauf Komma durch "nichts" ersetzen, im zweiten Durchlauf Punkt durch Komma ersetzen, fertig.
Gruß
Martin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige