MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 19.07.2018, 08:51   #1
Heike86
MOF User
MOF User
Standard VBA - Verkettung ohne doppelte Werte

Hallo zusammen,

ich hatte in 2014 nach einer Lösung für ein Problem mit dem Verketten gefragt und eine super hilfreiche Antwort bekommen. Die damalige Lösung habe ich angehängt. Hier wurde mir eine VBA geschrieben (Thema Verketten2 mit mehreren Bedingungen).
Bis jetzt hat die Datei einwandfrei funktioniert. Dafür bin ich immer noch dankbar.
Nun soll ich diese Datei für einen Kollegen ein bisschen umbauen, kenne mich aber mit VBA leider überhaupt nicht aus.
Die VBA ist so aufgebaut, dass sie keine Doppelungen in den Abkürzungen erkennt.
Z.B. Wenn ich für KW 28 die Abkürzungen B, S, P, B, S habe, sollte mir die Formel im Idealfall folgendes wiedergeben: BSP und nicht BSPBS.
Ist es möglich, dies umzuschreiben?

MfG Heike86
Angehängte Dateien
Dateityp: xls Verketten2 (1).xls (41,5 KB, 2x aufgerufen)
Heike86 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 19.07.2018, 09:12   #2
Hajo_Zi
MOF Guru
MOF Guru
Standard

ich hätte es so verstanden?

Tabelle1
 EF
5Zeile 1BSP

verwendete Formeln
Zelle Formel Bereich N/A
F5=Verketten3(E5;A3:A11)  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 25.14 einschl. 64 Bit



Code:

Function Verketten3(StText As String, RaZelle1 As Range) As String
    Dim RaZelle2 As Range
    For Each RaZelle2 In RaZelle1
        If RaZelle2 = StText Then
            If Verketten3 = "" Then
                Verketten3 = Verketten3 & RaZelle2.Offset(0, 2)
            ElseIf InStr(Verketten3, RaZelle2.Offset(0, 2)) = 0 Then
                Verketten3 = Verketten3 & RaZelle2.Offset(0, 2)
            End If
        End If
    Next RaZelle2
End Function
Im Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.

GrußformelHomepage

__________________

Signatur in jedem Beitrag
m Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.

Geändert von Hajo_Zi (19.07.2018 um 09:25 Uhr).
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 19.07.2018, 13:05   #3
Heike86
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Hajo,

vielen Dank erstmal für den Lösungsvorschlag.
Allerdings habe ich zwei Bedingungen, Zeile und Spalte. Die Spalte wird in deiner Formel leider nicht berücksichtigt. Wäre da noch eine Ergänzung möglich?

MfG Heike
Heike86 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 19.07.2018, 13:23   #4
Hajo_Zi
MOF Guru
MOF Guru
Standard

Hallo Heike,

Nein, keine Ahnung was Du willst.

Gruß Hajo

__________________

Signatur in jedem Beitrag
m Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 19.07.2018, 15:34   #5
Heike86
Threadstarter Threadstarter
MOF User
MOF User
Standard

Ok, ich habe die Testdatei ein wenig umgebaut und hoffe, so ist es etwas verständlicher.
Ich habe zwei Bedingungen: Einmal der Kunde, als Beispiel Zeile 1 und zum anderen die Woche, als Beispiel 3 oder 4.
Wenn also beide Bedingungen mit meiner Tabelle E3:J4 übereinstimmen, sollen die Abkürzungen verkettet werden. Z.B. bei Zeile 1 und 3: BSB.
Die Formel bzw. VBA, die ich derzeit dort hinterlegt habe, schließt eine Doppelung nicht aus. Das Ergebnis, das ich dort sehen wollen würde, wäre: BS. Also jede Abkürzung nur einmal. Nur, wenn das möglich ist, natürlich.
So etwas besser?
Angehängte Dateien
Dateityp: xls Verketten2 (1).xls (42,0 KB, 5x aufgerufen)
Heike86 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 19.07.2018, 15:37   #6
Hajo_Zi
MOF Guru
MOF Guru
Standard

Gut Du möchtest nicht erklären was Du willst, dann musst Du es selber lösen.
Ich arbeite auch nicht für den Papierkorb, darum ist mein Code nicht enthalten.
Viel Erfolg.

Gruß Hajo

__________________

Signatur in jedem Beitrag
m Forum kann der Beitrag als erledigt markiert werden. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.

Geändert von Hajo_Zi (19.07.2018 um 15:53 Uhr).
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.07.2018, 06:49   #7
Heike86
Threadstarter Threadstarter
MOF User
MOF User
Standard

Sehr freundlich, vielen Dank trotzdem für die Hilfe.
Heike86 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.07.2018, 07:10   #8
hary
MOF Guru
MOF Guru
Standard

Moin
Code:

Function verketten2(Bereich As Range, suche1 As Range, suche2 As Range, Trennzeichen As String) As String
Dim rng As Range
Dim strText As String
   For Each rng In Bereich
     If InStr(1, strText, rng.Offset(, 2)) = 0 Then
      If rng & rng.Offset(, 1) = suche1 & suche2 Then
        strText = IIf(strText <> "", strText & Trennzeichen & rng.Offset(, 2), rng.Offset(, 2))
      End If
     End If
   Next
verketten2 = strText
End Function
sieht dann so aus:



Tabelle1
 ABCDEFGHIJ
2     34579
3Zeile 13B Zeile 1B/S  B/SP
4Zeile 13S Zeile 2    B
5Zeile 13B       
6Zeile 17B       
7Zeile 17B       
8Zeile 17S       
9Zeile 19P       
10Zeile 19P       
11Zeile 29B       
12Zeile 212P       
13Zeile 212D       
14Zeile 213P       

verwendete Formeln
Zelle Formel Bereich R1C1 für Add In
F3:J4=verketten2($A$3:$A$14;$E3;F$2;"/")  =verketten2(R3C1:R14C1,RC5,R2C,"/")

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://hajo-excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.02 einschl 64 Bit

gruss hary
hary ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.07.2018, 07:42   #9
Heike86
Threadstarter Threadstarter
MOF User
MOF User
Standard

Super, vielen lieben Dank schon mal. Die Formel funktioniert.
Allerdings steht die Abkürzung in meiner Original-Datei in der 7. Spalte, nicht in der 3. Könnte man das noch anpassen? Ansonsten würde ich dann die Rohdaten umstellen.
Heike86 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.07.2018, 07:44   #10
hary
MOF Guru
MOF Guru
Standard

Moin
Tausche
rng.Offset(, 2)
gegen
rng.Offset(, 6)
gruss hary

Geändert von hary (20.07.2018 um 07:47 Uhr).
hary ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.07.2018, 08:24   #11
Heike86
Threadstarter Threadstarter
MOF User
MOF User
Standard

Mega super!!
Vielen lieben Dank für die Hilfe!!

MfG Heike
Heike86 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.