Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sverweis für Gross-Kleinschreibung

Sverweis für Gross-Kleinschreibung
12.12.2007 18:14:00
maexchen22
Hallo,
ich habe 2 Excel-Dateien
Aus der 1. Datei sollen Daten in eine 2. Datei per SVERWEIS übernommen werden (in diesem Fall Zuweisung von Gewichten)
Auszug aus 1. Datei:
B1: /abCd C1: 10,5
B2: /abCD C2: 1936,45
...
In o.a. Beispiel sind die Strings immer 5 Zeichen lang, die Längen variieren, die maximale Länge der Strings in Spalte B ist 56 Zeichen.
Problematisch ist, dass SVERWEIS nicht auf Gross-Kleinschreibung achtet -> für meine Anforderung ist das aber unumgänglich!
Mein Ansatz ist:
in beiden Dateien den String (also z.B. von Zelle B1) "/abCd" aufzuteilen (...MID(A1;1;)....) und dann den ASCII-CODE davon zu ermitteln und diese ASCII-CODES aneinanderzureihen.
Aufgrund der enstehenden Zeichenfolge möchte ich dann den SVERWEIS durchführen...
-> aus /abCD soll 47-97-98-68-100 werden
War aber nicht erfolgreich mit meinen Versuchen:

Sub asciicodevonstringermitteln()
Dim laenge, i, lastrow As Integer
Dim umzuwandeln As String
lastrow = Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To lastrow
umzuwandeln = Cells(i, 2).Value
laenge = Len(umzuwandeln)
Cells(i, 1).Select
If laenge = 1 Then
ActiveCell.FormulaR1C1 = "=CODE(MID[RC[1],1,1))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
ElseIf laenge = 2 Then
ActiveCell.FormulaR1C1 = "=CODE(MID[RC[1],1,1))&""-""&CODE(MID(RC[1],2,1))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
ElseIf laenge = 3 Then
ActiveCell.FormulaR1C1 = "=CODE(MID[RC[1],1,1))&""-""&CODE(MID(RC[1],2,1))&""-""&CODE( _
MID(RC[1],3,1))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
ElseIf laenge = 4 Then
ActiveCell.FormulaR1C1 = "=CODE(MID[RC[1],1,1))&""-""&CODE(MID(RC[1],2,1))&""-""&CODE( _
MID(RC[1],3,1))&""-""&CODE(MID(RC[1],4,1))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
ElseIf laenge = 5 Then
ActiveCell.FormulaR1C1 = "=CODE(MID[RC[1],1,1))&""-""&CODE(MID(RC[1],2,1))&""-""&CODE( _
MID(RC[1],3,1))&""-""&CODE(MID(RC[1],4,1))&""-""&CODE(MID(RC[1],5,1))"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
End If
Cells(i, 1).Select
Next i
Application.CutCopyMode = False
End Sub


Was mache ich falsch?
Gibt es "bessere" Ansätze?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sverweis für Gross-Kleinschreibung
12.12.2007 19:06:35
Harry
Hallo Max,
verwende statt SVERWEIS eine Kombination aus SUMME und IDENTISCH
Beispiel
Wert in G3, deine Werteliste in B1:C100
G4 {=SUMME(IDENTISCH(B1:B100;G3)*C1:C100)}
geschweifte Klammer nicht eingeben, sondern mittels Shift-Strg-Enter als Matrixformel eintragen.
Gruß
Harry

AW: Sverweis für Gross-Kleinschreibung
12.12.2007 21:34:46
Daniel
Hi
warum aufwendig mit Makro, wenns diese Formel auch tut?

=TEXT(CODE(TEIL(A1;1;1));"000-")&TEXT(CODE(TEIL(A1;2;1));"000-")&TEXT(CODE(TEIL(A1;3;1));"000-") &TEXT(CODE(TEIL(A1;4;1));"000-")&TEXT(CODE(TEIL(A1;5;1));"000") 


Gruß, Daniel

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige