Autor
|
Thema: Excel zellen verschieben mit wenn Bedingung erfüllt ist (8933 mal gelesen)
|
UGMANX Mitglied
Beiträge: 182 Registriert: 11.10.2005 UG NX3 SolidWorks office Professional 2006 CINEMA 4D R9
|
erstellt am: 24. Feb. 2015 13:29 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, wer kann mir bei solch einer "wenn Bedingung" (Verschiebung) behilflich sein? Vielen Dank im Voraus für Eure Hilfe. Gruss
UGMANX [Diese Nachricht wurde von UGMANX am 24. Feb. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 24. Feb. 2015 22:55 <-- editieren / zitieren --> Unities abgeben: Nur für UGMANX
Hallo Ugmanx, Ganz schön spartanisch Dein Einführungsthread auch wenn ein Bild manchmal mehr als tausend Wort sagt. Das wichtigste hast Du dabei aber vergesehen: Wie möchtest Du das realisieren? Soll das gleich bei der Eingabe überprüft werden (wie erfolgt diese? Manuell? Einlesen der Daten? Eintrag über Maske?) Oder soll nachträglich eine Überprüfung mittels Makro erfolgen? Fragen über Fragen - machbar ist vieles .. Gleiche Tabelle - oder neue? Bei gleicher Tabelle wäre es sicherlich praktischer die Ausgangswerte unter den Kopfzeilen L - B - H stehen zu lassen und nicht schon in einer der Ergebnisspalten (SHU L - SHU B - SHU H) anzugeben. Dann hast Du für die Ergebnisspalten einfache Abfragen und mußt keine Verschiebungen durchführen. Grüße Klaus
[Diese Nachricht wurde von KlaK am 24. Feb. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
UGMANX Mitglied
Beiträge: 182 Registriert: 11.10.2005 UG NX3 SolidWorks office Professional 2006 CINEMA 4D R9
|
erstellt am: 24. Feb. 2015 23:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus, vielen Dank für deine Antwort und deine Fragen. Es ist die Gleiche Tabelle, die Werte sollen in die entsprechende Zellen verschoben werden. Es sollen alle drei Werte von SHU; LEV wie folgt verschoben werden SHU SHU L; SHU B; SHU H LEV LEV L; LEV B; LEV H & PAL PAL L; PAL B; PAL H Mein Ziel ist es das Werte neben einander liegen. Die vertikalen Werte horizontal zur verschieben. Es kann durch eine Wenn Abfrage oder noch besser mit einem Makro gemacht werden. Würde mich sehr freuen wenn du mir helfen könntest. Gruß UGMANX [Diese Nachricht wurde von UGMANX am 24. Feb. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 25. Feb. 2015 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für UGMANX
Hallo UGMANX, beiliegend auf die Schnelle eine Lösung mit beibehalten der Ausgangswerte (komm gerade nicht zum proggen) Zur Erklärung: Davon ausgehend dass die drei Werte der Units immer zur Material Nbr vorhanden sind wird die Spalte A untersucht. Bei einer neuen Nummer werden in dieser Zeile die Werte in den entsprechenden Spalten dargestellt. Formel : =WENN($A5=$A4;"";D7) für die Werte in der Spalte "G" (SHU-L) wobei die Spalten D,E,F die Ausgangswerte (L,B,H) enthalten. d.h. Du kannst die Formeln der Spalte G-O problemlos kopieren und erhältst entweder eine leere Zelle oder den entsprechenden Wert. Grüße Klaus
[Diese Nachricht wurde von KlaK am 25. Feb. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
UGMANX Mitglied
Beiträge: 182 Registriert: 11.10.2005 UG NX3 SolidWorks office Professional 2006 CINEMA 4D R9
|
erstellt am: 25. Feb. 2015 15:28 <-- editieren / zitieren --> Unities abgeben:
|
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 25. Feb. 2015 22:16 <-- editieren / zitieren --> Unities abgeben: Nur für UGMANX
Dann hilft nur programmieren Man könnte das zwar auch über endlose Formeln lösen aber so geht es einfacher: Code:
Sub Verschieben()Dim AusR As Integer ' Ausgabereihe Dim AusS As Integer ' Ausgabespalte Dim ExR As Integer ' zu untersuchende Reihe Dim ExS As Integer ' Ausgangsspalte Dim tMatNbr As String ' Vergleichswert Dim AusShu As Integer ' Beginn der neuen SHU-Werte Dim AusLev As Integer ' Beginn der neuen LEV-Werte Dim AusPal As Integer ' Beginn der neuen PAL-Werte ExS = 1 ' Spalte A = Material Nbr ExR = 2 ' Beginn in Reihe (Zeile) 2 AusR = ExR ' Ausgabezeile AusS = ExS + 2 ' Spalte Vergleichsparameter "Units" AusShu = 7 ' Spalte G Beginn der SHU Werte AusLev = 10 ' Spalte J Beginn der LEV Werte AusPal = 13 ' Spalte M Beginn der PAL Werte tMatNbr = "" ' Beginn mit leerem Wert While Not IsEmpty(Cells(ExR, ExS)) ' Ausgangsspalte bis zum ersten leeren Wert untersuchen If Not tmatnr = Cells(ExR, ExS) Then ' gleicher Wert wie davor ' Nein, neue MatNr = neue Ausgabezeile AusR = ExR tmatnr = Cells(ExR, ExS) ' Vergleichswert merken Else ' gleiche Matnr es werden nur die Werte geschrieben End If ' Je nach Wert in die entsprechenden Spalten kopieren Select Case UCase(Cells(ExR, AusS)) Case "SHU": Cells(AusR, AusShu) = Cells(ExR, AusS + 1) Cells(AusR, AusShu + 1) = Cells(ExR, AusS + 2) Cells(AusR, AusShu + 2) = Cells(ExR, AusS + 3) Case "LEV": Cells(AusR, AusLev) = Cells(ExR, AusS + 1) Cells(AusR, AusLev + 1) = Cells(ExR, AusS + 2) Cells(AusR, AusLev + 2) = Cells(ExR, AusS + 3) Case "PAL": Cells(AusR, AusPal) = Cells(ExR, AusS + 1) Cells(AusR, AusPal + 1) = Cells(ExR, AusS + 2) Cells(AusR, AusPal + 2) = Cells(ExR, AusS + 3) Case Else MsgBox "Wert " & Cells(ExR, AusS) & " noch nicht berücksichtigt" End Select ' nächste Zeile untersuchen ExR = ExR + 1 Wend End Sub
Das Makro findest Du auch in der Exceltabelle Habe zum Testen mal Deine Tabelle1 als Tabelle2 kopiert Grüße Klaus PS: Kann man natürlich auch erweitern, z.B. die Ausgabezellen zunächst löschen lassen oder die Ergebniswerte in einer neuen Tabelle direkt untereinander schreiben lassen. Aber ein wenig darfst Du auch spielen
[Diese Nachricht wurde von KlaK am 25. Feb. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 26. Feb. 2015 00:25 <-- editieren / zitieren --> Unities abgeben: Nur für UGMANX
|