Anzeige
Archiv - Navigation
788to792
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
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

2 spalten vergleichen und werte ausrichten

2 spalten vergleichen und werte ausrichten
07.08.2006 15:02:58
Horesch
Hallo, super Macro!!!
Ich kenne mich nicht aus und kann das Macro nicht umschreiben.
Ich brauche ein Macro, wo ich zwei Spalten definiere und alle Spalten (bis zu 30 Stück) links und (bis zu 30 Stück) rechts von der „Schnittstelle“ ebenfalls verschoben werden.
Bitte um Eure hilfe…
Vielen Dank im voraus
Andreas H.
Userbild

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 spalten vergleichen und werte ausrichten
07.08.2006 15:47:35
Hans
Hallo Andreas,
jetzt fällt mir erst auf, dass Du Dich auf einen Beitrag aus dem Jahre 2002 beziehst, da hat natürlich niemand eine Chance.
Wenn ich Dich richtig verstanden habe, wie folgt:

Sub Einfuegen()
Dim iLeft As Integer, iRight As Integer, iCol As Integer, iCount As Integer
iCount = 5
iCol = ActiveCell.Column
Range(Cells(1, iCol), Cells(1, iCol + iCount - 1)).EntireColumn.Insert
iCol = iCol + iCount + 1
Range(Cells(1, iCol), Cells(1, iCol + iCount - 1)).EntireColumn.Insert
End Sub

gruss hans
AW: 2 spalten vergleichen und werte ausrichten
07.08.2006 16:18:37
horesch
danke sehr!! Es geht bei mir nicht. Das Ergebnis sollte wie folgt aussehen:
Userbild
Das unten angehängte Macro ist sehr gut es berücksichtigt aber die jeweiligen angrenzenden Zeile nicht und sortiert nur Zahlen die in Spalte A und B stehen. :-( Wie kann ich das lösen?

Sub Ausrichten()
Dim i%, j%, intA%, intB%
i = 1
Do
intA = CInt(Cells(i, 1).Value)
intB = CInt(Cells(i, 2).Value)
j = 0
If intA < intB Then
j = 2
ElseIf intA > intB Then
j = 1
End If
If j <> 0 Then Cells(i, j).Insert Shift:=xlDown
i = i + 1
Loop Until IsEmpty(Cells(i, 1).Value) Or IsEmpty(Cells(i, 2).Value)
End Sub

Anzeige
AW: 2 spalten vergleichen und werte ausrichten
07.08.2006 17:06:55
ingoG
Hallo Hans,
angehängtes Macro bearbeitet die inhalte aus spalte C und D und die jeweis 2 links bzw rechts angehängten...
bei mir hat es so gefunzt...
Die spalten C und D müssen jedoch jeweils sortiert sein.
Ich hoffe, das hilft Dir schon mal weiter
Gruß Ingo
PS eine Rückmeldung wäre nett...

Sub tttt()
Dim z1 As Long, z2 As Long
z1 = 1
z2 = 1
While Not (IsEmpty(ActiveSheet.Cells(z1, 3)) Or IsEmpty(ActiveSheet.Cells(z2, 4)))
If ActiveSheet.Cells(z1, 3) = ActiveSheet.Cells(z2, 4) Then
z1 = z1 + 1
z2 = z2 + 1
ElseIf ActiveSheet.Cells(z1, 3) < ActiveSheet.Cells(z2, 4) Then
Range(ActiveSheet.Cells(z2, 4), ActiveSheet.Cells(z2, 6)).Insert (xlShiftDown)
z1 = z1 + 1
z2 = z2 + 1
Else
Range(ActiveSheet.Cells(z1, 1), ActiveSheet.Cells(z1, 3)).Insert (xlShiftDown)
z2 = z2 + 1
z1 = z1 + 1
End If
Wend
End Sub

Anzeige
AW: 2 spalten vergleichen und werte ausrichten
07.08.2006 17:30:24
ingoG
Hallo zusammen,
und hier nochmal erweitert...
spalte sp1 und sp2 werden verglichen und dann anz-spalten links bzw rechts davon mit verarbeitet.
habe die Werte im Macro fest verdraten, man könnte sie auch im Macro eingeben lassen.
Gruß Ingo
PS eine Rückmeldung wäre nett

Sub tttt()
Dim z1 As Long, z2 As Long
Const sp1 = 3
Const sp2 = 4
Const anz = 3
z1 = 1
z2 = 1
While Not (IsEmpty(ActiveSheet.Cells(z1, 3)) Or IsEmpty(ActiveSheet.Cells(z2, 4)))
If ActiveSheet.Cells(z1, sp1) = ActiveSheet.Cells(z2, sp2) Then
z1 = z1 + 1
z2 = z2 + 1
ElseIf ActiveSheet.Cells(z1, sp1) < ActiveSheet.Cells(z2, sp2) Then
Range(ActiveSheet.Cells(z2, sp2), ActiveSheet.Cells(z2, sp2 + anz - 1)).Insert (xlShiftDown)
z1 = z1 + 1
z2 = z2 + 1
Else
Range(ActiveSheet.Cells(z1, sp1 - anz + 1), ActiveSheet.Cells(z1, sp1)).Insert (xlShiftDown)
z2 = z2 + 1
z1 = z1 + 1
End If
Wend
End Sub

Anzeige
korrektur
07.08.2006 17:34:39
ingoG
hab nat einmal das ersetzen vergessen...
Option Explicit

Sub tttt()
Dim z1 As Long, z2 As Long
Const sp1 = 4
Const sp2 = 5
Const anz = 3
z1 = 1
z2 = 1
While Not (IsEmpty(ActiveSheet.Cells(z1, sp1)) Or IsEmpty(ActiveSheet.Cells(z2, sp2)))
If ActiveSheet.Cells(z1, sp1) = ActiveSheet.Cells(z2, sp2) Then
z1 = z1 + 1
z2 = z2 + 1
ElseIf ActiveSheet.Cells(z1, sp1) < ActiveSheet.Cells(z2, sp2) Then
Range(ActiveSheet.Cells(z2, sp2), ActiveSheet.Cells(z2, sp2 + anz - 1)).Insert (xlShiftDown)
z1 = z1 + 1
z2 = z2 + 1
Else
Range(ActiveSheet.Cells(z1, sp1 - anz + 1), ActiveSheet.Cells(z1, sp1)).Insert (xlShiftDown)
z2 = z2 + 1
z1 = z1 + 1
End If
Wend
End Sub

Anzeige
AW: korrektur
08.08.2006 08:54:43
horesch
Hallo Ingo,
Vielen Dank für Deine Hilfe!! :-)))
Ist schon toll wie mir hier alle helfen!!
Habe Erich’s Macro genommen weil ich als Anfänger leichter erkennen konnte wo ich die Position der Schnittstelle ändern kann.
Vielen Dank!!
Andreas
AW: 2 spalten vergleichen und werte ausrichten
07.08.2006 18:04:15
Erich
Hallo Andreas,
mein Vorschlag:
Option Explicit
Sub Sort_insert()
Dim zz As Long
Const lngS = 12    ' Schnittstelle nach der 12. Spalte
zz = 1
Do
If Cells(zz, lngS) < Cells(zz, lngS + 1) Then
Range(Cells(zz, lngS + 1), Cells(zz, 256)).Insert xlShiftDown
ElseIf Cells(zz, lngS) > Cells(zz, lngS + 1) Then
Range(Cells(zz, 1), Cells(zz, lngS)).Insert xlShiftDown
End If
zz = zz + 1
Loop Until IsEmpty(Cells(zz, lngS)) Or IsEmpty(Cells(zz, lngS + 1))
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: 2 spalten vergleichen und werte ausrichten
08.08.2006 08:45:47
horesch
Super es funktioniert!
Ist schon toll wie mir hier geholfen wird!!
Noch eine Bitte, ist es möglich, dass ich die Schnittstelle frei definieren kann?
Also zum Beispiel durch die aktuelle markierte Zelle.
Vielen Dank!!
Andreas
AW: 2 spalten vergleichen und werte ausrichten
08.08.2006 09:58:43
Erich
Hallo Andreas,
so wird die Schnittstelle rechts von der aktven Zelle angenommen:
Option Explicit
Sub Sort_insert()
Dim lngS As Integer, zz As Long
lngS = ActiveCell.Column    ' Schnittstelle nach der aktiven Spalte
zz = 1
Do
If Cells(zz, lngS) < Cells(zz, lngS + 1) Then
Range(Cells(zz, lngS + 1), Cells(zz, 256)).Insert xlShiftDown
ElseIf Cells(zz, lngS) > Cells(zz, lngS + 1) Then
Range(Cells(zz, 1), Cells(zz, lngS)).Insert xlShiftDown
End If
zz = zz + 1
Loop Until IsEmpty(Cells(zz, lngS)) Or IsEmpty(Cells(zz, lngS + 1))
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: 2 spalten vergleichen und werte ausrichten
08.08.2006 13:37:22
horesch
Erich,
VIELEN DANK!! :-)))
Perfekt!
Beste Wünsche
Andreas

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige