Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
724to728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
724to728
724to728
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Spalten zusammenführen; vorher Spaltenauswahl
01.02.2006 21:28:54
Erwin
Guten Abend zusammen,
ich muss immer wieder 2 bis zu 4 Spalten zu einer neuen Spalte zusammenführen.
Da es nicht immer Spalten A, B, C, ... sind bräuchte ich ein Makro mit folgender Funktion:
1. Nach Makrostart Anfrage an User, welche Spalten zusammengeführt werden sollen.
2. Eingabemöglichkeit bis zu 4 Spalten.
3. Nach OK wird nach der letzten genannten Spalte eine neue Spalte eingefügt und der Inhalt der ausgewählten Spalten dort als gesamter Wert eingefügt.
4. Abarbeitung bis zum letzten Wert einer Spalte.
Wer kann hier bitte helfen?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten zusammenführen; vorher Spaltenauswahl
02.02.2006 07:54:19
Heiko
Moin Erwin,
ich kann nicht ganz nachvollziehen was du unter zusammenführen verstehst, Addieren oder sowas z.B. was einfach die Texte zusammenführt?!

Sub SpaltenZusammenfuehren()
Dim bytAnzahlSpalten As Byte, bytHelp As Byte
Dim lngHelp As Long
Dim strhelp As String
bytAnzahlSpalten = Application.InputBox("Wieviele Spalten sollen zusammengeführt werden !", _
" Spaltenanzahl ", "2", Type:=1)
If bytAnzahlSpalten < 2 Then Exit Sub
If Cells(1, bytAnzahlSpalten + 1) <> "" Then
If MsgBox("Die Spalte '" & bytAnzahlSpalten + 1 & "' ist nicht leer ! Soll Sie überschrieben werden ? ", _
vbYesNo + vbCritical) = vbNo Then
Exit Sub
End If
End If
With ActiveSheet
For lngHelp = 1 To .UsedRange.Rows.Count
strhelp = ""
For bytHelp = 1 To bytAnzahlSpalten
strhelp = strhelp & .Cells(lngHelp, bytHelp)
Next bytHelp
.Cells(lngHelp, bytAnzahlSpalten + 1) = strhelp
Next lngHelp
End With
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Spalten zusammenführen; vorher Spaltenauswahl
02.02.2006 08:58:54
Erwin
Hallo Heiko,
war von mir vielleicht etwas verwirrend beschrieben, dein VBA macht es soweit richtig, es setzt die Teile einfach nacheinander zusammen.
Die InputBox müsste jedoch Eingabemöglichkeiten haben, welche Spalten zusammengeführt werden sollen, weil es nicht immer Spalte A, B, ... sind, es kann auch sein, dass A, D, G, H (max. 4 Spalten) in einer neu einzufügenden Spalte zusammenzuführen sind.
Wäre super wenn das klappen würde.
Grüße Erwin
AW: Spalten zusammenführen; vorher Spaltenauswahl
02.02.2006 10:24:15
Heiko
Hallo Erwin,
das war nur mit Inputbox schwieriger als erwartet, wenn du aber bei diesem Makro ein wenig Disziplin bei der Eingabe der Spaltenbuchstaben (immer schön ein Komma dazwischen und keine Leerzeichen) walten läßt sollte es laufen.

Sub SpaltenZusammenfuehren2()
Dim bytAnzahlSpalten As Byte, bytHelp As Byte
Dim lngHelp As Long
Dim strhelp As String, strSpalten As String
Dim arrSpalten As Variant
strSpalten = InputBox("Welche Spalten sollen zusammengeführt werden ! " & vbCr & vbCr & _
"Angabe ohne Leerzeichen aber mit Komma !" & vbCr & _
vbCr & "Z.B     A,B,C   oder  F,I,AA !", _
" Spaltenangabe ", "A,B,C")
If strSpalten = "" Or strSpalten = "Falsch" Then Exit Sub
arrSpalten = Split(strSpalten, ",")
bytAnzahlSpalten = UBound(arrSpalten) + 1
If Range(arrSpalten(UBound(arrSpalten)) & "1").Offset(0, 1) <> "" Then
If MsgBox("Die Spalte neben '" & arrSpalten(UBound(arrSpalten)) & _
"' ist nicht leer ! Soll Sie überschrieben werden ? ", _
vbYesNo + vbCritical) = vbNo Then
Exit Sub
End If
End If
With ActiveSheet
For lngHelp = 1 To .UsedRange.Rows.Count
strhelp = ""
For bytHelp = 1 To bytAnzahlSpalten
strhelp = strhelp & .Range(arrSpalten(bytHelp - 1) & lngHelp)
Next bytHelp
.Range(arrSpalten(UBound(arrSpalten)) & lngHelp).Offset(0, 1) = strhelp
Next lngHelp
End With
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Spalten zusammenführen; vorher Spaltenauswahl
02.02.2006 12:28:55
Erwin
Hallo Heiko,
erstmal herzlichen Dank für die Mühe und das Ergebnis passt auch ganz gut.
Folgende Frage hätte ich noch: Wenn die nächste Spalte belegt ist, wird nachgefragt, ob überschrieben werden soll - bei ja macht es das auch, bei nein bricht er ab.
Könnte man bei NEIN auch noch berücksichtigen, dass dort evtl eine Spalte eingefügt wird - und danach doch der zusammengesetzte String eingefügt wird?
Wird kompliziert, ich weis, aber vielleichts geht's.
Grüße Erwin
AW: Spalten zusammenführen; vorher Spaltenauswahl
02.02.2006 12:41:01
Heiko
Hallo Erwin,
ja is den heut schon Weihnachten ?!
so gehts ;-)

Sub SpaltenZusammenfuehren2()
Dim bytAnzahlSpalten As Byte, bytHelp As Byte
Dim lngHelp As Long
Dim strhelp As String, strSpalten As String
Dim arrSpalten As Variant
strSpalten = InputBox("Welche Spalten sollen zusammengeführt werden ! " & vbCr & vbCr & _
"Angabe ohne Leerzeichen aber mit Komma !" & vbCr & _
vbCr & "Z.B     A,B,C   oder  F,I,AA !", _
" Spaltenangabe ", "A,B,C")
If strSpalten = "" Or strSpalten = "Falsch" Then Exit Sub
arrSpalten = Split(strSpalten, ",")
bytAnzahlSpalten = UBound(arrSpalten) + 1
If Range(arrSpalten(UBound(arrSpalten)) & "1").Offset(0, 1) <> "" Then
If MsgBox("Die Spalte neben '" & arrSpalten(UBound(arrSpalten)) & _
"' ist nicht leer ! Soll eine neue eingefügt werden  = JA,  Makro beenden = NEIN ", _
vbYesNo + vbCritical) = vbYes Then
ActiveSheet.Range(arrSpalten(UBound(arrSpalten)) & "1").Offset(0, 1).EntireColumn.Insert Shift:=xlToRight
Else
Exit Sub
End If
End If
With ActiveSheet
For lngHelp = 1 To .UsedRange.Rows.Count
strhelp = ""
For bytHelp = 1 To bytAnzahlSpalten
strhelp = strhelp & .Range(arrSpalten(bytHelp - 1) & lngHelp)
Next bytHelp
.Range(arrSpalten(UBound(arrSpalten)) & lngHelp).Offset(0, 1) = strhelp
Next lngHelp
End With
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Spalten zusammenführen; vorher Spaltenauswahl
02.02.2006 14:36:24
Erwin
Hallo Heiko,
...jetzt ist Weinachten - danke.
Erwin

300 Forumthreads zu ähnlichen Themen


Hallo Excel Freaks !
Habe folgendes Problem.
Ich möchter über ein makro auf einen Ordner Zugreifen indem sich über 400 excel files befinden. Die excel files beinhalten nur ein Sheet wobei dieses den Namen des files hat (Also nicht Tabelle 1 oder Sheet 1 oder so).
Ich möchte dass das...
Anzeige

Hallo,
ich habe in 2 Spalten Werte. Wie kann ich prüfen, ob die werte in der einen spalte enthalten sind. WEnn sie enthalten sind, soll in einer 3.spalte ein text ausgegeben werden.
wie mach ich das am besten?
danke euch?

Hallo VBA experten,
ich habe eine frage und bitte um eure Hilfe.
Ich komme alleine nicht weiter:(
Ich habe eine Tabelle1. In Spalte 1 Stehen z.b Werte untereinander.
27>27
17>17
6>6
17>1
usw...
diese möchte ich gerne in ein Array übernehmen und da...
Anzeige

Hallo liebe Forum-Leser!
Ich versuche in Excel sowas ähnliches wie MS Project darzustellen (weil das so gewünscht wird, fragt aber nicht warum).
Durch Datumseingabe (für Anfang und Ende des Projekts) will ich nur den Zeitstrahl (in Kalendeswochen) darstellen, so dass man die einzelne Sc...

hallo zusammen,
gibt es bei excel eine möglichkeit aus spalte 1 und 2 oder 1, 2 und 3 kombinationen zu bilden?
vielen dank im voraus!
lg

Hallo
Ich habe in Spalte M ein Datum "Ausführung Beginn" und in Spalte N ein Datum "Ausführung Ende". Wie kann ich für einen bestimmten Zeitraum alle Daten zwischen Ausrührung Beginn und Ausführung Ende filtern. Zb. alle Arbeiten die in der Zeit vom 1.11.10 und 31.11.10 ausgeführt werden bz...
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige