Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

excel makro wert herausziehen neu berechnen und wieder einfügen!





Frage

hi! ich habe eine problem ich möchte aus einem tabellenblatt dem bereich D5 bis AB 384 alle zellen die blau formatiert sind den wert herausziehen mit einem faktor von 0,85 berechnen und wieder an der gleichen position einfügen??? kann nir jemand da helfen?

Antwort 1 von Shaori

den Wert einer Zelle kriegst du mit [Zelle].Value heraus

ob eine Zelle blau markiert ist kriegst du mit dem Befehl [Zelle].Interior.ColorIndex heraus. ColorIndex liefert dann eine Zahl zurück, 0 für nichts, 1 für schwarz, usw. 5 müsste dann blau sein, je nachdem welches blau du meinst ;)

den Bereich kannst du entweder über eine normale Schleife durchlaufen oder per "For Each Zelle in Selection" durchgehen

einfügen des Wertes geht dann wieder über .Value, genauso wie das auslesen

Antwort 2 von Shaori

[Zelle] ist natürlich nur ein Platzhalter für die jeweilige Zelle, meist per .Range("A1") usw. abgefragt

Antwort 3 von hawaii6

dankeschön!

verstehe aber leider nur bahnhof bin blond!
könntest du mir bitte ein bsp. darlegen?? wäre super.

Antwort 4 von Saarbauer

Hallo,

versuch es mal mit dem Makro

Sub Makro_85()
´
´ Makro2 Makro_85
´ Makro am 01.11.2006 von Helmut aufgezeichnet
For i = 5 To 384
For j = 4 To 28
If Cells(i, j).Interior.ColorIndex = 41 Then ´Farbe 41 = Blau
Cells(i, j).Value = Cells(i, j).Value * 0.85
End If
Next j
Next i
End Sub

Wobei deine Angabe zur Zellformatierung etwas unklar sind da die Zahl oder der Hintergrund farbig sein können, ich gehe von farbigen Hintergrund aus und dem Balu, dass als Farbe 41 hinterlegt ist.

Gruß

Helmut

Antwort 5 von Shaori

Sub test()
Dim zelle As Range

ActiveWorkbook.Sheets(1).Range("D5:AB384").Select
For Each zelle In Selection
If zelle.Interior.ColorIndex = 5 Then
zelle.Value = zelle.Value * 0.85
End If
Next zelle

End Sub





Das ist das komplette Makro dafür. Die Zahl 1 in der 4. zeile hinter Sheets bezeichnet dein Tabellenblatt. Hast du nur 1 Blatt, dann bleibts bei der 1. ansonsten halt die jeweilige Nummer eintragen an der das tabellenblatt in Excel steht.
ColorIndex = 5 filtert dir die blauen zellen heraus
zelle.Value = zelle.Value * 0.85 multipliziert die Inhalte der blauen Zellen mit 0,85 (Punkt als Komma in Excel!) und fügt das Ergebnis sofort wieder ein

Antwort 6 von hawaii6

hi hab es bei vba in arbeitsmappe eingefügt funkt aber noch nicht die farbe ist blassblau bei excel. muss ich den sheet namen auch beachten? grüsse

Antwort 7 von Saarbauer

Hallo,

erstelle dir ein Makro im dem du eine Zelle in deiner Farbe anlegsu und ersetzt die Farbe 41 in meinem Makro durch deine Farbe, wahrscheinlich 37.


Gruß

Helmut

Antwort 8 von Shaori

Sub farbe()
ActiveWorkbook.Sheets(1).Range("B1").Value = _
ActiveWorkbook.Sheets(1).Range("A1").Interior.ColorIndex
End Sub

mach die eine neue Mappe oder erzeuge in derselben ein Feld mit der Farbe. Das feld ist im Beispiel A1. In B1 würde dann der Farbcode stehen. Den musst du dann in dem Makro einfach ersetzen.

zu den Sheets: entweder man schreibt Sheets(<nummer>) und trägt halt die Position des Tabellenblattes ein, oder man gibt den Namen des tabellenblattes in Anführungszeichen ein, also Sheets("Tabelle1"). Nimmt sich nichts, wobei die Variante mit dem Namen sicherer ist wenn sich mehrere Tabellenblätter in der Datei befinden

Antwort 9 von hawaii6

supppperrr hat gefunzt grosses lob an diese plattform!!!! :)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: