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

Zahlenwert nach rechts verschieben

Zahlenwert nach rechts verschieben
kurt
Guten Abend,
ich habe ein Problem, wenn in einer Zelle (Spalte I ab Zelle3) der Wert größer ist als 4 stellen,
soll dieser Wert ausgeschnieden und 2 spalten nach rechts verschoben werden,
geht das ?
Die Gesamtlänge ist 10.000 Zellen.
gruß kurt k
AW: Zahlenwert nach rechts verschieben
06.06.2012 21:14:41
M
Versuch mal folgendes:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.AddressLocal > "$I$3" Then
If IsNumeric(Target.Value) Then
If Len(Target.Value) - InStr(Target.Value, ",") > 4 Then
Selection.Cut
ActiveCell.Offset(0, 2).Activate
ActiveSheet.Paste
End If
End If
End If
End Sub

Wie kann ich das Makro starten ?
06.06.2012 21:22:57
kurt
Hallo Merlin,
wie kann ich starten ?
gruß kurt k
AW: Wie kann ich das Makro starten ?
06.06.2012 21:28:10
M
Wenn du das Makro in den Modulbereich der Tabelle kopierst, wird es sofort ausgelöst wenn du eine Zelle in der Tabelle markiertst bzw. Werte eingibst....
Geht nicht
06.06.2012 21:31:01
kurt
Da tut sich nichts,
gruß kurt
Anzeige
AW: Geht nicht
06.06.2012 22:08:43
M
Ersetz nochmal diese Zeile:
Habe die 3 als String verglichen, muss aber ne Zahl sein...
If Adr(1) >= "I" And Adr(2) > 3 Then
AW: Geht nicht
06.06.2012 22:09:37
kurt
Hallo Merlin,
da muss ich jede Zelle anklicken,
es sind 12000 Zellen ?
gruß kurt k
Anzeige
AW: Geht nicht
06.06.2012 22:13:59
M
Jetzt erklär nochmal was du genau machen willst....?
Soll das Macro das ganze blatt Prüfen und jede Zelle durch gehn...?
Ich hatte das so verstanden, wenn du ein Wert eingibts, dann soll der verscoben werden....
Hier nochmal mein Wunsch
06.06.2012 22:17:23
kurt
Hallo,
die Zahlen sind hinterlegt stehen also ggf. drin ich schätze ca. 7.000, es sollte ein Makro die Spalte abprüfen und dann ggf. nach rechts verschieben, wenn der Wert höher ist als z.B. 6 Stellig.
gruß kurt k
Hier nochmal mein Wunsch
06.06.2012 22:17:28
kurt
Hallo,
die Zahlen sind hinterlegt stehen also ggf. drin ich schätze ca. 7.000, es sollte ein Makro die Spalte abprüfen und dann ggf. nach rechts verschieben, wenn der Wert höher ist als z.B. 6 Stellig.
gruß kurt k
Anzeige
Hier nochmal mein Wunsch
06.06.2012 22:17:34
kurt
Hallo,
die Zahlen sind hinterlegt stehen also ggf. drin ich schätze ca. 7.000, es sollte ein Makro die Spalte abprüfen und dann ggf. nach rechts verschieben, wenn der Wert höher ist als z.B. 6 Stellig.
gruß kurt k
AW: Hier nochmal mein Wunsch
06.06.2012 22:33:52
M
Meinst du sowas?
Sub Offset()
Dim r1 As Range
Set r1 = Range("A1:AA1000")
For Each c In r1
Dim Adr() As String
Adr = Split(c.AddressLocal, "$")
If Adr(1) >= "I" And Adr(2) > 3 Then
If IsNumeric(c.Value) Then
If Len(c.Value) - InStr(c.Value, ",") > 4 Then
Selection.Cut
ActiveCell.Offset(0, 2).Activate
ActiveSheet.Paste
End If
End If
End If
Next
End Sub

Anzeige
Warum klappt es nicht ?
07.06.2012 09:45:10
kurt
Guten Morgen Merlin,
ich weiß nicht warum aber es klappt nicht.
Nach Beendigung steht der Courser in der letzten Spalte (256).
gruß kurt k
Zahlen bedingt verschieben - VBA
07.06.2012 08:34:00
Erich
Hi Kurt,
die unter der Tabelle stehende Routine verteilt die Werte aus Spalte I (vorher aus Spalte G nach I kopiert) auf die Spalten I und K:
 GHIJK
2alle alle / kurz lang
31234567   1234567
4123456 123456  
5-234567   -234567
6-23456 -23456  
712345 12345  
80 0  
9123,567   123,567
10123,56 123,56  
11-234,6 -234,6  
12-234,67   -234,67
13-12,3000% -0,123  
14-12,3400%   -0,1234
15abcdefg   abcdefg
16abcdef abcdef  

Hier der Code:

Private Sub cbStart_Click()
Dim lngZ As Long, arQ, arZ(), zz As Long
lngZ = Cells(Rows.Count, 9).End(xlUp).Row - 2   ' Anz. Zeilen ab Zeile 3
arQ = Cells(3, 9).Resize(lngZ)                  ' Quellspalte in Array (Sp. I=9)
ReDim arZ(1 To lngZ, 1 To 1)                    ' Zieldaten anlegen
For zz = 1 To lngZ
If Len(arQ(zz, 1)) > 6 Then               ' wenn Länge > 6 ?
arZ(zz, 1) = arQ(zz, 1)                   ' Übertrag in Zieldaten
arQ(zz, 1) = Empty                        ' Löschen in Quelldaten
End If
Next zz
Cells(3, 9).Resize(lngZ, 1) = arQ               ' Ausgabe in Quellspalte (I=9)
Cells(3, 11).Resize(lngZ, 1) = arZ              ' Ausgabe in Zielspalte (K=11)
End Sub
Und hier eine BeiSpielMappe: https://www.herber.de/bbs/user/80459.xls
Das Kriterium "Wert größer ist als 6 stellen" bzw. "Wert höher ist als z.B. 6 Stellig" ist nicht so recht klar.
Meinst du z. B. Wert > 999999?
Was ist dabei mit Nachkommastellen, Vorzeichen, Prozentzeichen?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
Guten Morgen Erich
07.06.2012 09:52:33
kurt
Guten Morgen Erich,
danke auch für deine Unterstützung.
Ich versuche nochmals zu beschreiben.
Wenn die Werte oder auch Text Zahlen egal was in der Spalte I stehen,
sollen dies in die Spalte K verschoben werden, also Spalte I ist dann LEER.
Als Steuerung, wenn die Werte/Zahlen was auch immer > als 6 Zeichen
vorhanden sind.
Würde mich freuen wenn Du nochmals dies liest.
Danke bisher auch an Merlin !!!
gruß Kurt K
Anmerkung
07.06.2012 10:00:10
kurt
Hallo Erich,
habe mal meine Daten in deine Mustermappe kopiert und START
gedrückt.
Super nur die oberere Werte in der Spalte K wurden gelöscht,
ist also der einzige Fehler !
gruß kurt k
Anzeige
Rückfrage
07.06.2012 10:32:20
Erich
Hi Kurt,
was meinst du mit "nur die oberere Werte in der Spalte K wurden gelöscht"?
Sollten Zellen nicht gelöscht werden? Wenn ja: Welche?
Oder sollten mehr als die "oberen" Werte gelöscht werden?
Dann hatte ich da noch diese Frage:
Das Kriterium "Wert größer ist als 6 stellen" bzw. "Wert höher ist als z.B. 6 Stellig" ist nicht so recht klar.
Meinst du z. B. Wert > 999999?
Probier mal die neue Version: https://www.herber.de/bbs/user/80464.xls
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
Guten Morgen Erich
07.06.2012 10:51:41
kurt
Guten Morgen Erich,
bitte mal die Mustermappe ansehen in der Spalte AH bis AJ habe ich alle Daten.
Es dürfen die vorhandenen Daten nicht gelöscht werden.
Habe dein Makro Start ausgelöst, leider werden dann die vorhandenen Daten gelöscht.
Es sollten nur Zellen nach RECHTS geschoben werden die in der Anzahl größer 6
sind. ALLE anderen Daten dürfen nicht gelöscht werden.
https://www.herber.de/bbs/user/80465.xls
mfg kurt K
neuer Versuch
07.06.2012 11:20:48
Erich
Hi Kurt,
hoffentlich hab ichs jetzt etwas besser verstanden...: https://www.herber.de/bbs/user/80466.xls
Dann hatte ich da noch diese Frage. Magst du sie nicht beantworten?
Das Kriterium "Wert größer ist als 6 stellen" bzw. "Wert höher ist als z.B. 6 Stellig" ist nicht so recht klar.
Meinst du z. B. Wert > 999999?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
Danke Erich ! auch danke an Marlin ! -)
07.06.2012 11:33:00
kurt
Hallo Erich,
jawohl dies ist so wie ich es brauch,
DANKE !

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige