Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
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

Gleiche Werte in Spalte markieren

Gleiche Werte in Spalte markieren
Larissa
Hallo,
ich möchte mit einem Makro in einer Spalte alle Zellen mit dem gleichen Wert markieren.
Mit meinem Makro wird nur die erste Zelle mit dem Wert markiert:
Dim Belegnr As String
Belegnr = ActiveCell.Offset(0, -14)
Sheets("Kontierung").Select
Range("B:B").Find(Belegnr).Select
Selection.Offset(0, 10).Select
Die Belegnummern stehen immer blockweise untereinander, falls das die Sache etwas vereinfacht.
Vielen Dank für Eure Hilfe,
Gruß, Larissa

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Gleiche Werte in Spalte markieren
27.09.2009 22:24:30
Daniel
Hi
machs doch so:
das Makro schreibt die Belegnummer in eine freie Zelle (möglichst immer die gleiche)
Range("AA1").Value = ActiveCell.Offset(0, -14).value

und das Färben der gleichen Werte erledigst du dann über die Bedingte Formatierung, die sich auf diese Zelle bezieht.
Die Bedingte Formatierung sollte Dir ja aus anderen Beiträgen bekannt sein.
Gruß, Daniel
AW: Gleiche Werte in Spalte markieren
27.09.2009 23:16:07
Larissa
HI,
ich bastel mir meinen Weg wahrscheinlich wieder mal viel zu umständlich...
Also eigentlich möchte ich alle USD Werte mit der bestimmten Belegnummer mit einem Wechselkurs in EUR umrechnen. Ich lade jetzt eine Beispieldatei mit einem Makro hoch, welches aber noch nicht so funktioniert, weil ich die Blöcke nicht markieren kann.
https://www.herber.de/bbs/user/64754.xls
Ich würde mich freuen, wenn sich das mal jemand anschauen kann.
Gruß, Larissa
Anzeige
ohne Select und Markieren
27.09.2009 23:59:57
Erich
Hi Larissa,
probiers mal damit:

Public Sub Kurs()
Dim varV, lngB As Long, arrW
varV = Application.Match(Cells(1, 11), Columns(2), 0)
If IsNumeric(varV) Then
lngB = varV
While Cells(lngB, 2) = Cells(1, 11)
If Cells(lngB, 6).NumberFormat  "#,##0.00 [$$-409]" Then ' Formatprüfung
MsgBox "Zelle " & Cells(lngB, 6).Address(0, 0) & _
" hat nicht Format #,##0.00 [$$-409]", vbCritical, "Abbruch"
Exit Sub
End If
lngB = lngB + 1
Wend
With Cells(varV, 6).Resize(lngB - varV)      ' betroffener Bereich
arrW = Application.Transpose(.Value)   ' einlesen in Array
For lngB = 1 To UBound(arrW)           ' umrechnen
arrW(lngB) = Application.Round(arrW(lngB) / Cells(2, 11), 2)
Next lngB
.NumberFormat = "#,##0.00"             ' Zahlenformat
.Value = Application.Transpose(arrW)   ' zurückschreiben
End With
Else
MsgBox "Beleg-Nr '" & Cells(1, 11) & "' wurde in Spalte B nicht gefunden", _
vbCritical, "Abbruch"
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Gleiche Werte in Spalte markieren
28.09.2009 00:06:41
Daniel
HI
probier mal das hier:
Sub Kurs2()
Dim rngBeleg As Range
Dim rngEK As Range
Dim BelegNr As Variant
BelegNr = Range("K1").Value
'- nach Belegnummer sortieren, dies vereinfacht das Makro
Range("A1").CurrentRegion.Sort key1:=Cells(1, 2), order1:=xlAscending, header:=xlYes
'--- Belege finden und Zuweisen
Set rngBeleg = Columns(2).Find(what:=BelegNr, lookat:=xlWhole)
If rngBeleg Is Nothing Then
MsgBox "Beleg-Nr wurde nicht gefunden."
Else
'--- Zellbereich nach Anzahl der Belegnummern erweitern
Set rngBeleg = rngBeleg.Resize(WorksheetFunction.CountIf(Columns(2), BelegNr), 1)
'--- Zellen mit Betrag zuweisen
Set rngEK = Intersect(rngBeleg.EntireRow, Columns(6))
If rngEK.NumberFormat = "#,##0.00 [$$-409]" Then
'--- Betrag in Euro umrechnen und umformatieren
Range("k2").Copy
rngEK.PasteSpecial xlPasteValues, xlPasteSpecialOperationDivide
rngEK.NumberFormat = "#,##0.00"
End If
End If
End Sub
einfacher wäre es natürlich, gleich alle USD-Werte in Euro umzurechnen, das würde so gehen (dann für alle Zeilen, die USD als Zahlenformat haben:
Sub kurs3()
Dim Zelle As Range
For Each Zelle In Columns(6).SpecialCells(xlCellTypeConstants, 1)
If Zelle.NumberFormat = "#,##0.00 [$$-409]" Then
Zelle.Value = Zelle.Value / Range("K2").Value
Zelle.NumberFormat = "#,##0.00"
End If
Next
End Sub
Gruß, Daniel
ps: wenn du weiterhin erfolgreich mit Excelmakros arbeiten willst, solltest du dashier lesen und verstehen:
http://www.online-excel.de/excel/singsel_vba.php?f=78
http://www.online-excel.de/excel/singsel_vba.php?f=4
Anzeige
AW: Gleiche Werte in Spalte markieren
28.09.2009 00:23:06
Larissa
Ohje, Danke für die tollen Makros. Wenn ich das nur auch so gut könnte..... Danke für die Links, Daniel, die werde ich mal studieren.
Ich bin jetzt etwas zu müde um sie auf meine Arbeitsmappe anzupassen, aber morgen gebe ich dann mein Feedback dazu.
Vielen Dank für Eure Mühe und gute N8 ;-)
Larissa
Super Hilfe!!! Danke
29.09.2009 21:57:04
Larissa
Ich habe das Makro von Daniel genommen und sogar selber anpassen können :-)
Ich habe noch zwei Zusatzspalten mit dem Kurs und EUR Betrag eingefügt, so dass man später auch noch mal den Kurs ändern kann.
Es funktioniert supigut - Nochmal vielen Dank!!!

348 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige