Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
588to592
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
588to592
588to592
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Matrix für code fixieren?

Matrix für code fixieren?
25.03.2005 17:28:43
Erich
Hallo EXCEL-Freunde,
derzeit habe ich in einem Code über sSearch und .Find eine Lösung, bei der
eine Matrix in einer Tabelle durchsucht wird und dann die dazugehörigen
Ergebnisse ermittelt werden:
Status
 ABCD
1NrNameAbteilungSegment
2231MüllerAlttief
3232HuberNeuhoch
4233MayrNeuhoch
5234BauerAltmittel
6235GreisAlttief
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Allerdings muss ich jedesmal bei Neuinstallationen neben dem code auch die
Tabelle mitübertragen / liefern.
Da die Suchfunktionen im code öfters vorkommen suche ich eine Möglichkeit
wie ich dies im Code lösen könnte (mit Variablen?).
Die Ermittlung habe ich bereits:

Sub Zahl_aus_Text()
Dim r As Range, intSpalte As Integer, i As Long, myZeile As Long
intSpalte = 1 + 1
' aus Zellen den Inhalt ermitteln und zugehörigen Namen eintragen
Cells(1, intSpalte + 4) = "Name"
Cells(1, intSpalte + 5) = "Abteilung"
Cells(1, intSpalte + 6) = "Segment"
For i = 2 To myZeile
If UCase(Cells(i, 3)) = "231" Then
Cells(i, intSpalte + 4) = "Müller"
Cells(i, intSpalte + 5) = "Alt"
Cells(i, intSpalte + 6) = "tief"
ElseIf UCase(Cells(i, 3)) = "232" Then
Cells(i, intSpalte + 4) = "Huber"
Cells(i, intSpalte + 5) = "Neu"
Cells(i, intSpalte + 6) = "hoch"
ElseIf UCase(Cells(i, 3)) = "234" Then
Cells(i, intSpalte + 4) = "Bauer"
Cells(i, intSpalte + 5) = "Alt"
Cells(i, intSpalte + 6) = "mittel"
End If
Next
End Sub

Jetzt müsste im code "die Matrix irgendwo fixiert" werden, auf die immer
zugegriffen wird - dann müsste ich bei Änderungen nur die Matrix ändern
und nicht immer den umfangreichen code.......
(Ob das jetzt verständlich ist?)
Trotzdem besten Dank!!
mfg
Erich
http://www.toolex.de

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Matrix für code fixieren?
25.03.2005 17:59:24
Josef
Hallo Erich!
Möglich das ich dich falsch verstehe, aber warum machst du das
per Code und nicht mit SVERWEIS() ?
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


AW: Matrix für code fixieren?
25.03.2005 18:04:41
Erich
Hallo Josef,
mit SVERWEIS geht nicht bzw. ist nicht möglich, da das ganze innerhalb eines größeren
Codes abläuft.
mfg
Erich
http://www.toolex.de
Könnte das man mit TextBoxen lösen?
25.03.2005 19:23:29
Erich
Hallo,
wäre es möglich, dass ich eine UF erstelle und darin über mehrere TextBoxen eine
Matrix erstelle und dann jeweils auf die TextBoxen vom code zugegriffen wird?
mfg
Erich
http://www.toolex.de
Anzeige
AW: Könnte das man mit TextBoxen lösen?
25.03.2005 20:09:27
Josef
Hallo Erich!
Warum schreibst du die Daten nicht in ein (verstecktes) Tabellenblatt?
Dann könntest du die Daten mit .Find auslesen!
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


AW: Könnte das man mit TextBoxen lösen?
25.03.2005 20:12:50
Erich
Hallo Josef,
so habe ich es derzeit gelöst. Allerdings muss ich dann die versteckten Tabellenblätter
immer wieder mitliefern bzw. aktualisieren. Wenn ich alles per code bzw. nur mit einer
UF hätte, würde die Kopie des codes reichen.
Das mit den versteckten Tabellenblättern hat sich im Laufe der zeit als umständlich
erwiesen; deshalb versuche ich zu optimieren.
mfg
Erich
http://www.toolex.de
Anzeige
AW: Könnte das man mit TextBoxen lösen?
27.03.2005 20:50:53
Erich
Hallo Sepp,
super; das schaut schon ganz gut aus und erleichtert ne Menge.
Werde mal versuchen das in die UF einzubauen und melde mich wieder.
mfg
Erich
http://www.toolex.de
AW: Könnte das man mit TextBoxen lösen?
27.03.2005 22:36:20
Erich
Hallo Sepp,
also ich kann das jetzt in den UF-code integrieren.
Bevor ich diesen jetzt aufwändig umstelle zwei Fragen:
1. Wenn die Zahlen in Spalte A stehen, kann man dann die Einträge aus dem Array
erst ab der spalte C veranlassen (die Spalte B habe ich mit dem Code derzeit
anderweitig belegt)?
2. Wenn die Zahlen in Spalte H stehen, kann man dann die Einträge aus dem Array
auch links davon - z. B. in die Spalten D, E und F eintragen lassen?
Besten Dank; ansonsten muss ich den code entsprechend komplett umstricken.
mfg
Erich
http://www.toolex.de
Anzeige
AW: Könnte das man mit TextBoxen lösen?
27.03.2005 23:22:55
Josef
Hallo Erich!
Sollte auch kein Problem sein.
https://www.herber.de/bbs/user/20229.xls
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


AW: Könnte das man mit TextBoxen lösen?
28.03.2005 08:58:49
Erich
Hallo Sepp,
danke - eine Supersache!!
Beim testen habe ich noch ungelöst: der Eintrag ab einer Spalte die variabel
mit "letzteSpalte + .." ermittelt wird funktioniert noch nicht.
Es funktioniert:
Eintragen Range("ah3:ah" & myZeile), 0, 0
Da allerdings ah nicht immer gleich ist, muss ich die variable letzteSpalte einbinden:
so gehts aber nicht:
Eintragen Range(3, letzteSpalte + 30)(myZeile, letzteSpalte + 30), 0, 0
(auch nicht mit Cells)
Was ist denn da noch falsch?
Besten Dank nochmal!

mfg
Erich
http://www.toolex.de
Anzeige
doch noch weiteres Problem
28.03.2005 10:23:51
Erich
Hallo Sepp,
hab mich zu früh gefreut.
Beim testen festgestellt, dass aus dem Array immer nur der erste suchbegriff erkannt
und dann das Ergebnis eingetragen wird.
D. h., wenn 231 in den Zeilen nach unten 5x vorkommt, dann wird "Müller" nur
einmal eingetragen und bei den folgenden vier Zeilen erfolgt kein eintrag mehr.
Ist das zu beheben?
Besten Dank!
mfg
Erich
http://www.toolex.de
.... doch noch gelöst
28.03.2005 10:47:50
Erich
Hallo Sepp,
jetzt scheint es wirklich perfektioniert; so gehts (auch fürs Archiv) sowohl die
variable Spalte als auch der mehrmalige Eintrag:
Sub test2() Dim i As Integer For i = 22 To 27 Eintragen Cells(i, 8), 1, -4 Next i End Sub
Nochmals allerbesten Dank für Deine Bemühungen!!
mfg
Erich
http://www.toolex.de
Anzeige
.....und trotzdem noch eine Frage.......
28.03.2005 11:11:05
Erich
Hallo Sepp,
habe jetzt festgestellt, dass ich aus dem Array mit 4 Spalten
varDaten(0) = Array(231, "Müller", "Alt", "tief")
in einigen Fällen nur eine bestimmte Spalte als Ergebnis benötigen würde.
Kann man es einrichten, dass z.B. nur das Ergebnis "Alt" eingetragen wird;
der Beginn mit "Alt" durch
Sub test2() Dim i As Integer For i = 22 To 27 Eintragen Cells(i, 8), 2, -4 Next i End Sub
ist mir klar. Wie kann ich verhindern, dass auch nocht "tief" in die nächste spalte
eingetragen wird?
Besten Dank!
mfg
Erich
http://www.toolex.de
Anzeige
AW: .....und trotzdem noch eine Frage.......
28.03.2005 12:21:16
Josef
Hallo Erich!
Dann füge der Prozedur "Eintragen" doch den Parameter "ende as Integer" hinzu!

Sub Eintragen(Bereich As Range, beginn As Integer, ende As Integer, offset As Integer)
Dim n As Integer, i As Integer
Dim rng As Range
If offset < 0 Then offset = offset - 1
Daten
If ende < beginn Then ende = beginn
For n = 0 To UBound(varDaten)
Set rng = Bereich.Find(varDaten(n)(0), LookAt:=xlWhole)
If Not rng Is Nothing Then
For i = beginn To IIf(ende > UBound(varDaten(n)), UBound(varDaten(n)), ende)
rng.offset(0, offset + i) = varDaten(n)(i)
Next
End If
Set rng = Nothing
Next
End Sub

Der Aufruf sieht dann so aus:

Sub test2()
Dim i As Integer
For i = 22 To 27
Eintragen Cells(i, 8), 2, 2, -4
'            Bereich,von,bis,offset
Next i
End Sub

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige