123660
Goto Top

Spalte suchen, rechnen und ersetzen Excel vba

Hallo zusammen,
ich hoffe ihr könnt mir weiter helfen. mein Problem ist :
ich habe ein Tabelle mit 2 spalten ( siehe Bild) und möchte nach die zahlen in spalte "H" suchen, die mit "30" oder "3" anfangen zum Beispiel 3000 oder 300.
wenn ein zahl gefunden ist, muss der wert der gegenüber steht in mein Fall "-2" als Exp. gerechnet werden. so als Formel (10^-2) * 1000=10 und die 1000 mit 10 überschreiben.
als Formel in Zelle einzugeben ist einfach aber ich will das mit vba machen.

so sieht mein Tabelle jetzt.
7bb60432a1302e53e207411d9704e379

und so muss die Aussehen später.
82eb8285ce2f3cce16ac8c5aa8364542

vielen Dank im voraus.
aschi

Content-ID: 293113

Url: https://administrator.de/forum/spalte-suchen-rechnen-und-ersetzen-excel-vba-293113.html

Ausgedruckt am: 04.04.2025 um 04:04 Uhr

colinardo
colinardo 14.01.2016 aktualisiert um 18:04:25 Uhr
Goto Top
Hallo Aschi,
Als Formel in Zelle einzugeben ist einfach aber ich will das mit vba machen.
biddeschön ...face-smile
Sub SearchAndCalc()
    Dim cell As Range
    With ActiveSheet
        For Each cell In .Range("H1:H" & .Cells(Rows.Count, "H").End(xlUp).Row)  
            If Left(cell.Value, 1) = "3" Then  
                cell.Offset(-1, -5).Value = (10 ^ cell.Offset(0, -5).Value) * cell.Offset(-1, -5).Value
            End If
        Next
    End With
End Sub
Grüße Uwe
TheJoker2305
TheJoker2305 14.01.2016 um 18:01:28 Uhr
Goto Top
Hallo,

sind es immer zwei Zeilen, die in diesem Zusammenhang betrachtet werden müssen?

z.B.:

1000 4001
-2 3001
2000 5001
-3 3111


Soll das Makro nach Eingabe der "1000" ausgeführt werden oder per Button?

Ansonsten funktioniert für diese zwei Datenzeilen folgendes:

Sub ZahlSuchen
For i = 2 to 3
   if left(range("H"&i).value,1) = "3" or  left(range("H"&i).value,2) = "30"  then _  
range("C"&i -1).value = (10 ^ range("C"&i)*Range("C" & i-1))  
  next i
end


Beste Grüße
thejoker2305
123660
123660 15.01.2016 um 08:39:46 Uhr
Goto Top
Hallo Genius Uwe,
vielen dank für die Hilfe, es funktioniert so weit alles gut.
ich habe aber noch eine frage bitte, manchmal habe ich zelle die fangen so : "3003 abcdef......." direkt nach der zahl kommt text.
kann man nur zum beispiel die zellen nur nach die ersten 4 oder 3 zahlen suchen ?

Grüße Aschi
123660
123660 15.01.2016 um 08:44:28 Uhr
Goto Top
Halle Thejocker2305,

Vielen Dank für die Hilfe, eigentlich ja aber die 1000 wird mit ein 10 überschrieben.
so sieht die Formel aus: 10^(-2) *1000=10 .
Grüße Aschi
colinardo
colinardo 15.01.2016 aktualisiert um 10:09:08 Uhr
Goto Top
Zitat von @123660:
ich habe aber noch eine frage bitte, manchmal habe ich zelle die fangen so : "3003 abcdef......." direkt nach der zahl kommt text.
Also in Spalte H ?
kann man nur zum beispiel die zellen nur nach die ersten 4 oder 3 zahlen suchen ?
Du möchtest in dieser gefundenen Zelle H welche mit 3 beginnt also nachträglich nur den überflüssigen Text entfernen ? In der Rechnung kommt die Zahl ja ansonsten nicht zum tragen.

Wenn das der Fall ist, machst du hiermit:
Sub SearchAndCalc()
    Dim cell As Range, regex As Object
    Set regex = CreateObject("vbscript.regexp")  
    regex.Pattern = "^\d+"  
    With ActiveSheet
        For Each cell In .Range("H1:H" & .Cells(Rows.Count, "H").End(xlUp).Row)  
            If Left(cell.Value, 1) = "3" Then  
                If Not IsNumeric(cell.Value) Then
                    Set m = regex.Execute(cell.Value)
                    cell.Value = CLng(m(0))
                End If
                cell.Offset(-1, -5).Value = (10 ^ cell.Offset(0, -5).Value) * cell.Offset(-1, -5).Value
            End If
        Next
    End With
    Set regex = Nothing
End Sub
123660
123660 15.01.2016 um 11:28:34 Uhr
Goto Top
Hallo Uwe,

ja in Spalte H, aber der Text muss nicht entfernt werden..sonst alles war richtig.
Danke schön
Grüße Aschi
colinardo
colinardo 15.01.2016 aktualisiert um 11:32:52 Uhr
Goto Top
Zitat von @123660:
ja in Spalte H, aber der Text muss nicht entfernt werden..sonst alles war richtig.
Dann weiß ich leider nicht was du sonst damit machen willst ??

Etwas mehr Mühe bei deinen Beschreibungen wäre schön face-confused

Grüße Uwe
123660
123660 15.01.2016 um 12:03:57 Uhr
Goto Top
Hallo Uwe,

also hier eine bessere Beschreibung für meine Aufgabe.ich muss die Exp ausrechnen, die fangen immer mit ein 3 vorne bei mir. sieht man in Spalte H.
habe nochmal die komplette Tabelle hier.
Beispiel:


Lösung:
colinardo
colinardo 15.01.2016, aktualisiert am 16.01.2016 um 09:57:50 Uhr
Goto Top
Zitat von @123660:
also hier eine bessere Beschreibung für meine Aufgabe.ich muss die Exp ausrechnen, die fangen immer mit ein 3 vorne bei mir. sieht man in Spalte H.
Haben wir ja schon alles gehabt und funktioniert ja bereits ...
habe nochmal die komplette Tabelle hier.
Beispiel:


Lösung:

Ikke sehen nix face-smile
colinardo
Lösung colinardo 16.01.2016, aktualisiert am 19.01.2016 um 09:48:36 Uhr
Goto Top
Wenns das dann war den Beitrag bitte noch als gelöst markieren. Merci.
123660
123660 19.01.2016 um 09:49:34 Uhr
Goto Top
Sorry ich war letzte zeit sehr beschäftigt, viel Dank für die Hilfe