Bräuchte VBA - Hilfe ;)

  • #1
T

Thenextone

Neues Mitglied
Themenersteller
Dabei seit
02.06.2008
Beiträge
2
Reaktionspunkte
0
Ich kenn mich noch nicht so gut aus in VBA, aber immerhin ein wenig ^^
Derzeit komme ich bei folgendem Problem nicht weiter.

Ich habe 2 Spalten mit Werten (diese werden dann mit Diagrammen gezeichnet).
2 Spalten im Diagramm zeichnen ist weder VBA noch wirklich schwer.
Aber jetzt mein eigentliches Problem:
Da es chemische Werte sind, können so manche Werte abweichen.
Reihe Beispiel: 1,2,3,4,16,6,7,8...
Hier würde 16 nicht reinpassen.

Ich wollte nun eine if-Abfrage machen (weiß jetzt nicht wies in VBA heißt).
Also zuerst springe ich in die gewünschte Spalte.
Dort möchte ich dann so etwas machen:
Wenn die Zahl einen gewissen Wert überschreitet (der vorher definiert ist), lösche diese und überprüfe den nächsten Wert.
Wenn der vorherige Wert gelöscht wurde, schreibe den erstbesten möglichen Wert in die Spalte.

Es geht hauptsächlich darum, dass ich nochmals eine Tabelle mache, wo alle richtigen Zahlen vorhanden sind.
Es ist in Chemie etwas untypisch eine riesige Ausschweifung zu haben und einfach zu löschen bringt in der Zeichnung eine Lücke, die eigentlich Weg gehört.

Ich hoffe, dass ich mich verständlich ausgedrückt habe.

LG Thenextone ;)

Edit: Falls jemand genauere Infos braucht, ich hätte auch MSN ;)
Aber nur per PN ;)

Es genügt normalerweise auch, dass ich leere Zellen löschen kann und die darunter stehenden Texte/Zahlen nach oben verschieben kann.
ABER NICHT DIE GANZE ZEILE!!!! -> nur die einzelnen Zellen verschieben.
 
  • #2
Hi,

wenn ich Dich richtig verstanden habe könntest Du es so machen:

Code:
Sub verschieben()
Dim rng As Range
Dim iMaxWert As Integer
Dim iSpalte As Integer
Dim iZeile As Integer
Dim iLetzteZeile As Integer


iSpalte = 1->in Spalte A stehen die werte
iLetzteZeile = 100-> letzte Zeile mit Werten.
iMaxWert = 16-> ab diesem Wert werden die Zahlen gelöscht

For iZeile = 1 To iLetzteZeile
  If Cells(iZeile, iSpalte).Value >= iMaxWert Then
    Set rng = Range(Cells(iZeile + 1, iSpalte), Cells(iLetzteZeile, iSpalte))
    rng.Cut Destination:=Cells(iZeile, iSpalte)
  End If
Next iZeile
End Sub

nicht die allerschönste Lösung, aber auf die schnelle sollte es funktionieren.
 
  • #3
Danke.
 
Thema:

Bräuchte VBA - Hilfe ;)

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben