Anzeige
Archiv - Navigation
1268to1272
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

VBA-Code ändern

VBA-Code ändern
WalterK
Hallo,
ich bekomme Tabellen, die ich mit einem Code entsprechend formatiere.
Die Spalten in der Tabelle wurden jetzt geändert und darum funktioniert der Code nicht mehr.
Ich habe eine Beispielmappe erstellt am das ganze besser darzustellen.
Ich habe das Probelm mit 3 Tabellenblättern dargestellt: Vorher, Jetzt und Soll
Oben in den Blättern ist jeweils die Ausgangstabelle angeführt und unten das Ergebnis nach Ausführung des Codes.
Das Blatt Soll zeigt wie es sein soll.
https://www.herber.de/bbs/user/80911.xls
Besten Dank für die Hilfe,
Servus, Walter

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

Betreff
Benutzer
Anzeige
Spaltentausch verkraften
09.07.2012 20:12:39
Erich
Hi Walter,
probier mal

Sub NameEinrichtenN()
Dim lngVor As Variant, lngLast As Long, ZelleA As Range, n As Long
lngVor = Application.Match("ZUNAME", Rows(2), 0)
If IsError(lngVor) Then Exit Sub
lngLast = Cells(Rows.Count, lngVor).End(xlUp).Row
ReDim myArr(lngLast, 0)
For Each ZelleA In Cells(3, lngVor).Resize(lngLast, 1).SpecialCells(xlCellTypeConstants)
myArr(n, 0) = StrConv(ZelleA & " " & ZelleA.Offset(, 1), vbProperCase)
n = n + 1
Next
Cells(23, lngVor).Resize(lngLast, 1) = myArr
Cells(22, lngVor) = "ZU- UND VORNAME"
Columns(lngVor).AutoFit
Columns(lngVor + 1).Delete
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Spaltentausch verkraften
09.07.2012 20:41:43
mas
Hallo,
ich war etwas zu langsam
Meine Lösung ist beinahe identisch
In Erich's Code ist m.E. am Ende noch eine Kleinigkeit falsch
Sub NameEinrichten()
Dim lngVor As Variant, lngLast As Long, ZelleA As Range, n As Long
lngVor = Application.Match("ZUNAME", Rows(2), 0)
If IsError(lngVor) Then Exit Sub
lngLast = Cells(Rows.Count, lngVor).End(xlUp).Row
ReDim myArr(lngLast, 0)
For Each ZelleA In Cells(3, lngVor).Resize(lngLast, 1).SpecialCells(xlCellTypeConstants)
myArr(n, 0) = StrConv(ZelleA & " " & ZelleA.Offset(, 1), vbProperCase)
n = n + 1
Next
Cells(3, lngVor).Resize(lngLast, 1) = myArr
Cells(2, lngVor) = "ZU- UND VORNAME"
Columns(lngVor).AutoFit
Columns(lngVor + 1).Delete
End Sub

Anzeige
Besten Dank auch Dir! Servus, Walter
09.07.2012 20:45:14
WalterK
Korrektur verkraftet
10.07.2012 01:39:03
Erich
Hi mas,
ja, da hatte ich testhalber die Ausgaben in den Zeiloen 22:23 statt 2:3 schreiben lassen. Walter hat's korrigiert. :-)
Kleine Bemerkung zu "Erich's Code":
Ich nenne ihn einfach "Erichs Code" und empfehle als unterhaltsame Lektüre abseits von Excel:
http://www.apostrophen-alarm.de/
http://einklich.net/etc/apostroph.htm
http://www.apostroph.de/display.php?k=genitiv&p=10
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
GENITIV in'''s Wasser, weil es DATIV ist ;-)
10.07.2012 16:56:45
NoNet
Hallo Erich,
schön zu lesen, dass es auch hier einige Menschen gibt, die sich um die Pflege der korrekten deutschen Rechtschreibung verdient machen und auf amüsante Weise auf das sog. "Deppen-Apostroph" (siehe Bastian Sick : "Der Dativ ist dem Genitiv sein Tod" - Folge 1 oder 2 oder 3 ?") aufmerksam machen.
Neben der falschen Verwendung des Apostrophs stört den versierten Leser oftmals auch noch die Verwendung des Accent aigu anstelle des Apostrophs :
Das ist nur NoNet´s anstelle NoNet's anstelle NoNets Meinung ;-) ...
Anzeige
So passt es, danke Erich! Servus, Walter
09.07.2012 20:42:25
WalterK

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige