Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Gleiche Werte nach rechts kopieren

Gleiche Werte nach rechts kopieren
Erwin_Geer
Guten Morgen,
ich habe Tabellen, die z. B. 5 Spalten breit und manchmal mehrere 1.000 Zeilen lang ist.
Dabei kann es vorkommen, dass z. B. in Spalte A manchmal gleiche (eindeutige) Werte (Aktenzeichen oder Namen) untereinander stehen können, aber in den Spalten B, C, D, E andere Werte dazu enthalten sind.
Ich möchte nun per VBA (nicht Pivot Funktion), dass in Spalte A der Wert nur noch ein einziges mal steht und alle Werte zu einem Aktenzeichen o. Namen nach rechts in die erste vorkommende Zeile kopiert werden.
Zum besseren Verständnis habe ich eine Datei hochgeladen, die den IST Zustand und das SOLL darstellt.
https://www.herber.de/bbs/user/66000.xls
Wer kann mir bitte helfen?
- Erwin -
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
..warum nicht Pivot?...
18.11.2009 09:25:07
robert
hi,
stelldir vor , du hast 12 Huber
wie sieht dann deine tabelle aus?
das ist doch ein klassiker für pivot
gruß
robert
AW: ..warum nicht Pivot?...
18.11.2009 09:35:59
Erwin_Geer
Hallo Robert,
zum einen ist das immer eindeutig in einer Zelle (ist vom HOST System so; i. d. R. Zahlenkombination),
zum anderen kenne ich mich mit Pivot fast nicht aus,
zum dritten habe ich Nachfolgemakros, die schon laufend benutzt werden und mit Pivot nicht zurecht kommen.
Mir wäre deshalb schon an einer VBA - Lösung gelegen.
Grüße
Erwin
Anzeige
Tabelle mit VBA umstellen
18.11.2009 12:10:17
Erich
Hi Erwin,
probier mal

Option Explicit
Sub Umorg()
Dim strS As String, cI As Long, lngZ As Long, cA As Long
Dim zz As Long, cc As Long, varM
strS = InputBox("Spaltenbuchstabe:", "Umorg")
cI = Range(strS & 1).Column
lngZ = Cells(Rows.Count, cI).End(xlUp).Row
cA = Cells(4, Columns.Count).End(xlToLeft).Column
For zz = 2 To lngZ - 1
cc = 1
varM = Application.Match(Cells(zz, cI), _
Range(Cells(zz + 1, cI), Cells(lngZ, cI)), 0)
While IsNumeric(varM)
cc = cc + cA
Cells(zz + varM, 1).Resize(, cA).Copy Cells(zz, cc)
If IsEmpty(Cells(1, cc)) Then _
Cells(1, 1).Resize(, cA).Copy Cells(1, cc)
Rows(zz + varM).Delete
varM = Application.Match(Cells(zz, cI), _
Range(Cells(zz + 1, cI), Cells(lngZ, cI)), 0)
Wend
Next zz
With ActiveSheet
If .AutoFilterMode Then .AutoFilterMode = False
End With
Cells(1, 1).AutoFilter
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Tabelle mit VBA umstellen
18.11.2009 12:58:36
Erwin_Geer
Hallo Erich,
toll funktioniert so wie ich es brauche und meine nachfolgenden Makros ebenso.
Herzlichen Dank
Erwin
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige