Text in Zelle suchen und Wert ausgeben

Moderator: ModerationP

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Mike41017 » 05. Okt 2017, 14:16

Wobei "join" die Werte nur aneinander reiht und nicht addiert. Zumindest bei mir ...
Mike41017
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon snb » 05. Okt 2017, 14:24

Na, und ?

Dictionary übersehen ?

Code nicht getestet ?
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4974
Registriert: 25. Sep 2014, 16:37

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Gast » 05. Okt 2017, 14:26

Pearli123 hat geschrieben:Die Werte stehen in der aktiven Tabelle in Spalte A. Die Ergebnisse dann aufgeteilt nach Namen in Spalte B & C

Ich bekomme es nicht hin, dass die Ausgabe der Ergebnisse auf Tabellenblatt 2 in Spalte A und B ausgegeben werden. Was mache ich falsch??
Gast
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Mike41017 » 05. Okt 2017, 14:28

snb hat geschrieben:Code nicht getestet ?

Doch natürlich getestet. Aber als Ergebnis erhalte ich dann Mayer 154313
Mike41017
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon snb » 05. Okt 2017, 14:35

Danke, gute Feedback.

Damit können wir etwas anfangen:

Code: Alles auswählen
Sub M_snb()
  sn = split(join(Application.Transpose(Range("a1").CurrentRegion.columns(1)),vblf),vblf)

  With CreateObject("Scripting.Dictionary")
    For j=0 To UBound(sn)
      sp=split(sn(j))
      .item(sp(0))= +sp(1)+.item(sp(0))
    next

    cells(1,3).Resize(.Count,2) = Application.Transpose(array(.Keys,.items))
  End With
End Sub
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4974
Registriert: 25. Sep 2014, 16:37

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Mike41017 » 05. Okt 2017, 16:44

Hm, jetzt hat Mayer 134315, also die umgekehrte Reihenfolge :?:
Mike41017
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon snb » 05. Okt 2017, 16:49

Dann verwende:

Code: Alles auswählen
Sub M_snb()
  sn = Split(Join(Application.Transpose(Range("a1").CurrentRegion.Columns(1)), vbLf), vbLf)

  With CreateObject("Scripting.Dictionary")
    For j = 0 To UBound(sn)
      sp = Split(sn(j))
      .Item(sp(0)) = --sp(1) + .Item(sp(0))
    Next

    Cells(1, 3).Resize(.Count, 2) = Application.Transpose(Array(.Keys, .Items))
  End With
End Sub
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4974
Registriert: 25. Sep 2014, 16:37

Sehr schick, snb ...

Beitragvon ehem. lupo1 » 05. Okt 2017, 17:04

... ich muss mich auch mal mit Dictionary befassen.
ehem. lupo1
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon snb » 05. Okt 2017, 17:28

snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4974
Registriert: 25. Sep 2014, 16:37

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Mike41017 » 05. Okt 2017, 20:23

snb hat geschrieben:Dann verwende:

Code: Alles auswählen
Sub M_snb()
  sn = Split(Join(Application.Transpose(Range("a1").CurrentRegion.Columns(1)), vbLf), vbLf)

  With CreateObject("Scripting.Dictionary")
    For j = 0 To UBound(sn)
      sp = Split(sn(j))
      .Item(sp(0)) = --sp(1) + .Item(sp(0))
    Next

    Cells(1, 3).Resize(.Count, 2) = Application.Transpose(Array(.Keys, .Items))
  End With
End Sub

Sehr genial!! Klappt super im Testdokument. Wenn ich den Code aber in mein eigentliches Dokument einbaue, dann erhalte ich eine Fehlermeldung.

Die Daten mit den Namen und Zahlen beginnen in Zelle B4 und die Ausgabe soll ab Zelle I4 und J4 beginnen.
Ich habe also folgendes verändert:
sn = Split(Join(Application.Transpose(Range("b4").CurrentRegion.Columns(1)), vbLf), vbLf)

und

Cells(4, 9).Resize(.Count, 2) = Application.Transpose(Array(.Keys, .Items))

Beim Ausführen erhalte ich nun allerdings den Laufzeitfehler 13 "Typen unverträglich" und der Debugger verweist auf: .Item(sp(0)) = --sp(1) + .Item(sp(0))

Wo hängt es??
Mike41017
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon snb » 05. Okt 2017, 20:27

Schwebe mit der Maus oben sn(j) und lese die Wert des Variables sn(j)
Wenn's Zellen gibt ohne Leerzeichen läuft's natürlich nicht.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4974
Registriert: 25. Sep 2014, 16:37

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Pearli123 » 05. Okt 2017, 20:33

Vor allem würde ich nicht Currentregion nehmen, wenns erst in einer anderen Zelle starten soll. Da einfach den Bereich definieren und gut ist.
Pearli123
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 848
Registriert: 20. Feb 2017, 13:38

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Mike41017 » 05. Okt 2017, 21:04

snb hat geschrieben:Schwebe mit der Maus oben sn(j) und lese die Wert des Variables sn(j)
Wenn's Zellen gibt ohne Leerzeichen läuft's natürlich nicht.

Ah ja, es liegt an den leeren Zellen. Kann man das Problem irgendwie umgehen? Den Range anpassen oder so?
Mike41017
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Mike41017 » 05. Okt 2017, 21:06

Pearli123 hat geschrieben:Vor allem würde ich nicht Currentregion nehmen, wenns erst in einer anderen Zelle starten soll. Da einfach den Bereich definieren und gut ist.

Jep, hab ich gemacht. Danke für den Tipp.
Mike41017
 

Re: Text in Zelle suchen und Wert ausgeben

Beitragvon Pearli123 » 05. Okt 2017, 21:13

Und wenn du die leeren noch raushaben möchtest, dann entweder deinen Bereich, mit anschließendem SpecialCells(xlCellTypeConstants). Und wenn du dann noch Formel Werte drin hast, mit Union den Bereich um SpecialCells(xlCellTypeFormula) zusammenfügen.

Grüße
Pearli123
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 848
Registriert: 20. Feb 2017, 13:38

VorherigeNächste

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste