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-Key: 293113

Url: https://administrator.de/contentid/293113

Printed on: April 20, 2024 at 03:04 o'clock

Member: colinardo
colinardo Jan 14, 2016 updated at 17:04:25 (UTC)
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
Member: TheJoker2305
TheJoker2305 Jan 14, 2016 at 17:01:28 (UTC)
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
Mitglied: 123660
123660 Jan 15, 2016 at 07:39:46 (UTC)
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
Mitglied: 123660
123660 Jan 15, 2016 at 07:44:28 (UTC)
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
Member: colinardo
colinardo Jan 15, 2016 updated at 09:09:08 (UTC)
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
Mitglied: 123660
123660 Jan 15, 2016 at 10:28:34 (UTC)
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
Member: colinardo
colinardo Jan 15, 2016 updated at 10:32:52 (UTC)
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
Mitglied: 123660
123660 Jan 15, 2016 at 11:03:57 (UTC)
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:
Member: colinardo
colinardo Jan 15, 2016, updated at Jan 16, 2016 at 08:57:50 (UTC)
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
Member: colinardo
Solution colinardo Jan 16, 2016, updated at Jan 19, 2016 at 08:48:36 (UTC)
Goto Top
Wenns das dann war den Beitrag bitte noch als gelöst markieren. Merci.
Mitglied: 123660
123660 Jan 19, 2016 at 08:49:34 (UTC)
Goto Top
Sorry ich war letzte zeit sehr beschäftigt, viel Dank für die Hilfe