Suche Lösung

Moderator: ModerationP

Re: Suche Lösung

Beitragvon MBHomeservice » 05. Sep 2017, 16:31

Eine neue Herrausforderung, vieleicht nicht für euch aber für mich. In der Tabelle die ich angehangen habe holt sich die Tabelle 1 erste Zeile die Werte aus den jeweiligen Bereichen der Tabelle 2 erste Zeile. Der Abstand auf Tabelle 2 zwischen den Datenblöcken ist immer gleich. Wie bekomme ich es hin das ich in Tabelle 1 die nächsten Daten automatisch abgreifen kann. Das heist sobald auf Tabelle 2 Markierung Rot Daten sind trage diese in Tabelle 1 Markierung rot ein, und dann wenn in Tabelle 2 Markeirung gelb Daten voehanden sind hänge sie an Tabelle 1 an.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MBHomeservice
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 45
Registriert: 26. Nov 2008, 15:17

Re: Suche Lösung

Beitragvon Xlsibb » 06. Sep 2017, 07:41

ab Zelle B1:

=INDEX(Tabelle2!$A:$J;9+ZEILE(A1)*10;SPALTE(A1))

nach rechts und nach unten ziehen.
Benutzeravatar
Xlsibb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 874
Registriert: 26. Feb 2009, 17:07

Re: Suche Lösung

Beitragvon MBHomeservice » 06. Sep 2017, 09:35

Danke für die schnelle Hilfe, ich glaube das solls jetzt erst mal gewesen sein, hoffe ich mal ;-)
MBHomeservice
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 45
Registriert: 26. Nov 2008, 15:17

Re: Suche Lösung

Beitragvon MBHomeservice » 07. Sep 2017, 11:59

Hallo @xlsibb, ich hätte da mal noch eine Frage bzw eine Bitte, ich habe versucht deine Formel für das Kopieren von mehreren Daten auf eine andere Tabelle umzuschreiben. bin aber kläglich mangels wissen daran gescheitert.
Ziel ist es die Daten aus der Tabelle "Aktuelle Platzierungen" in die Tabelle "Platzierungen 2017" anzuhängen.
Da du aber ja in dem urspünglichem Macro ja auch nach den Tabellen suchst war es zum scheitern verurteilt. Hab halt nicht die kenne.
Wärst Du so nett den Code dafür umzuschreiben?

Code: Alles auswählen
Sub test()

    Dim i As Integer
    Dim r1 As Integer, r2 As Integer
    Dim c As Integer
    Dim strSheet As String
   
    With Sheets(1) 'deine Eingabemaske ist nun nicht mehr Blatt 1, sondern Blatt 8!!!
        For r1 = 2 To .Cells(2, 2).End(xlDown).Row 'hier habe ich auf Spalte 2 korrigiert, da in Spalte 1 Formeln drin sind und er sonst nach Tabellenblättern ohne Namen sucht.
            strSheet = .Cells(r1, 2).Value
            r2 = Sheets(strSheet).Cells(Sheets(strSheet).Rows.Count, 1).End(xlUp).Row + 1 'hier habe ich die "Pfeil-nach-oben-Methode" verwendet, um auch leere Tabellen füllen zu können.
            Sheets(strSheet).Cells(r2, 1).Value = .Cells(r1, 1).Value
            For c = 3 To 9
                Sheets(strSheet).Cells(r2, c - 1).Value = .Cells(r1, c).Value 'Spalten müssen identisch lauten und in gleicher Reihenfolge auftauchen.
            Next c
        Next r1
    End With
   
End Sub


Gruß Marcel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MBHomeservice
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 45
Registriert: 26. Nov 2008, 15:17

Re: Suche Lösung

Beitragvon Xlsibb » 07. Sep 2017, 12:18

Hi Marcel,

das kostet langsam einen Kaffee, das weißt du hoffentlich?!

Code: Alles auswählen
Sub Daten_Anhaengen()

    Dim r As Long

    With Sheets(5)
       
        r = .Cells(.Rows.Count, 1).End(xlUp).Row + 2
        Sheets(4).Range("A1:AB31").Copy
        .Cells(r, 1).PasteSpecial Paste:=xlPasteValues
        .Cells(r, 1).PasteSpecial Paste:=xlPasteFormats
    End With

End Sub


So in etwa?
Benutzeravatar
Xlsibb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 874
Registriert: 26. Feb 2009, 17:07

Re: Suche Lösung

Beitragvon MBHomeservice » 07. Sep 2017, 13:02

Einen??? Das ist schon eine ganze Kanne :lol: Danke Dir werd ich gleich mal testen.
So, getestet, musste noch ein wenig anpassen, aber es funktioniert. Vielen Dank dafür.
Wo soll ich den Kaffe hinschicken? Ich garantiere aber nicht dafür das er dann auch heiß ist. :lol:
Gruß Marcel
MBHomeservice
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 45
Registriert: 26. Nov 2008, 15:17

Re: Suche Lösung

Beitragvon MBHomeservice » 07. Sep 2017, 16:21

Ist es möglich einem Tabellenblatt automatisch den Namen zu geben den ich in der Eingabetabelle im grünen Bereich eintrage? Also die Tabellenblätter die noch keine zuordnung haben heissen immer leer1,...2,...3. Nun gebe ich in der Eingabemaske L3 z.b. Hans ein und somit soll dann tabelle leer1 in Hans umbenannt werden. Ich danke für die Hilfe. Gruß Marcel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MBHomeservice
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 45
Registriert: 26. Nov 2008, 15:17

Re: Suche Lösung

Beitragvon DerHoepp » 07. Sep 2017, 16:31

Hallo Marcel,

du benötigst:
Das Worksheet-Change-Event des Blattes Eingabemaske.
In dem Worksheet-Change-Event wertest du aus, ob Target eine der Zellen L3... ist
Falls ja, setzt du die .Name-Eigenschaft des zugehörigen Worksheetobjekts (das kannst du in der Worksheets-Collection anhand des Namens einfach finden), auf den Inhalt der Target-Zelle.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5582
Registriert: 14. Mai 2013, 11:08

Re: Suche Lösung

Beitragvon MBHomeservice » 07. Sep 2017, 17:16

Hallo @xlsibb, hilfe! :shock: :? :?:
MBHomeservice
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 45
Registriert: 26. Nov 2008, 15:17

Re: Suche Lösung

Beitragvon Xlsibb » 08. Sep 2017, 08:43

Hi.

Jetzt machen wir aus dem Codeschnipselsucher mal einen echten Anwender ;-)

Nutze doch mal den Makrorecorder und zeichne auf, was du machen willst. Und dann überleg mal, wie du das automatisieren kannst.
Ist auch die Frage: willst du nur neue Tabellenblätter kreieren, oder auch vorhandene umbenennen?
Betrifft das nur die Zellen L2-L31? Das sind so Kriterien, die du in deine Überlegungen mit einbeziehen kannst.

ICh helfe dir gerne, schreibe dir aber nicht deine ganze Tabelle. Daher musst du langsam die richtigen Schritte selbst machen.
Bei Unterstützung: immer gerne.
Benutzeravatar
Xlsibb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 874
Registriert: 26. Feb 2009, 17:07

Re: Suche Lösung

Beitragvon MBHomeservice » 08. Sep 2017, 09:32

OK, dann brauchste aber geduld mit mir denn Programieren ist nicht meine stärke ;-)

Also folgende zeilen hat der Macrorecorder aufgenommen:
Code: Alles auswählen
Sub test()
'
' test Makro
'

'
    ActiveCell.FormulaR1C1 = "Hans"
    Range("L4").Select
    Sheets("leer1").Select
    Sheets("leer1").Name = "Hans"
End Sub


So, ich habe dabei als erstes in L4 den neuen Namen eingetragen, daher gehe ich daavon aus das dieser Bereich
Code: Alles auswählen
    ActiveCell.FormulaR1C1 = "Hans"
    Range("L4").Select

dafür zuständig ist.
Diese beiden Zeilen sind dann für das Umbenennen der Tabelle zuständig.
Code: Alles auswählen
    Sheets("leer1").Select
    Sheets("leer1").Name = "Hans"


Ziel ist es die vorhandenen, mit dem Name "leer..." bezeichneten, Tabellenblätter umzubenennen und zwar in die Namen die in den Zellen L2:L31 nacheinander vorkommen.
Ich kenne mich zwar ein wenig mit Excelformeln aus aber das übersteigt mmein Wissen.
OK, also die Frage ist wie ich das nun automatisieren kann?
Gruß Marcel
MBHomeservice
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 45
Registriert: 26. Nov 2008, 15:17

Re: Suche Lösung

Beitragvon Xlsibb » 08. Sep 2017, 09:44

Hi.

So, jetzt packst du den Code erstmal ins Worksheet_Change-Ereignis.
Dann wirfst du die ganzen "Select"-Befehle raus, die braucht kein Mensch.

Und dann musst du eine If-Bedingung einfügen: wenn die Spalte des Target = 12 ist und die Zeile des Target zwischen deinem relevanten Bereich ist, dann ist der Name des Sheets(Zeilennr. + <Unterschied Tabellennummer/Zeile>) = der Wert des Target.
Benutzeravatar
Xlsibb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 874
Registriert: 26. Feb 2009, 17:07

Re: Suche Lösung

Beitragvon MBHomeservice » 10. Sep 2017, 13:08

OK, ich habs versucht. Hab versucht mich in dieses
Worksheet_Change-Ereignis
einzulesen, genau wie eine If-Schleife funktioniert. Bei mir ist alles rausgekommen nur nicht das was ich erwartet hatte. :( Also ist das Thema "Namen für Tabellen vergeben" gestorben. Denn ich gebe euch recht, ihr habt schon so viel getan und dafür bedanke ich mich bei euch. Die Tabelle funktioniert jetzt so wie ich es mir vorstelle und dann gebe ich die Namen ebend selber ein. Ist ja auch kein Beinbruch. Vielen Dank an @XLsibb für die Macros und danke an die anderen für ihre anderweitige Hilfe. Gruß Marcel

PS: Ich werde diese Seite auf jeden Fall weiter empfehlen.
MBHomeservice
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 45
Registriert: 26. Nov 2008, 15:17

Re: Suche Lösung

Beitragvon MBHomeservice » 14. Sep 2017, 16:28

Hallo zusammen
ich stehe mal wieder vor einem Problem. In der beigefügten Tabelle, auf dem Blatt Anforderungen, werden in den Zeilen L,N,P jeweils in den Zellenblöcken 3-32 Berechnungen angefertig, dessen Ergebnisse dann durch bedingte Formatierungen fablich unterlegt sind.
Als größer, kleiner oder gleich Wert wurde jetzt in den Formatierungen jeweils der dazugehörige Wert aus den Zellen B3-F3 angegeben.
Nun zu meiner Frage:
Ist es möglich den Zellbezug in den Formarierungen anzupassen da für die nächste Auswertung ja nun die Zellen B4-F4 in den Formatierungen benötigt werden oder muss ich das immer von Hand ändern?
Danke im vorraus für die Hilfe.
Gruß Marcel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MBHomeservice
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 45
Registriert: 26. Nov 2008, 15:17

Re: Suche Lösung

Beitragvon DerHoepp » 15. Sep 2017, 06:56

Hallo Marcel,

woran soll der Rechner erkennen, welche Zeile nun für die bedingte Formatierung gilt?

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5582
Registriert: 14. Mai 2013, 11:08

VorherigeNächste

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Höttl Wilfried, JL_PP_58 und 13 Gäste