VBA vereinfachen

Moderator: ModerationP

VBA vereinfachen

Beitragvon blickema » 06. Okt 2017, 05:51

Hallo zusammen.
Zuletzt geändert von blickema am 06. Okt 2017, 12:56, insgesamt 1-mal geändert.
blickema
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5
Registriert: 06. Okt 2017, 05:42

Re: VBA vereinfachen

Beitragvon Fen » 06. Okt 2017, 07:35

Hallo,

bitte erstelle eine kleine Musterdatei mit Ausgangslage und Wunschergebnis.

Vielleicht kan es auch ohne VBA, z.B. mit "=sverweis()" gelöst werden.

mfg
Fen
 

Re: VBA vereinfachen

Beitragvon blickema » 06. Okt 2017, 07:44

Hallo Fen.
Auf dem Dropdown liegt bereits ein sverweis, zudem soll der Wert änderbar sein.
Die Lösung mit dem Button funktioniert ja, allerdings ist die Macro zu lang und kann daher nicht gelesen werden.
Ihr seht bereits die gekürzte Version...normalerweise ist Diese 6x so lang.
Ich suche quasi nach einer einfacheren Lösung...
Zuletzt geändert von blickema am 06. Okt 2017, 12:57, insgesamt 1-mal geändert.
blickema
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5
Registriert: 06. Okt 2017, 05:42

Re: VBA vereinfachen

Beitragvon Fennek » 06. Okt 2017, 07:58

Hallo,

ich hoffe, du kennst zumindest etwas das fern-östliche Yin-Yan Konzept, "gut und schecht" sind miteinander verwoben, sehr vereinfacht.

Gut an deiner Frage ist die Erkenntnis, dass es einfacher gehen dürfte: vermutlichmit 1-3 Zeilen.

Nicht so gut ist die Kommunikation, mit dem Bild kann vermutlich niemand etwas anfangen.

mfg

(nach einigen Erfahrungen hier in den Foren stelle ich nur einmal ein Nachfrage)
Fennek
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 359
Registriert: 12. Feb 2016, 18:56

Re: VBA vereinfachen

Beitragvon HKindler » 06. Okt 2017, 08:07

Hi,

ungetestet:

Code: Alles auswählen
Dim i As Long
Dim B4 As Variant
Dim D4 As Variant
B4 = ThisWorkbook.Sheets("Nebenzeiterfassung").Range("B4")
D4 = ThisWorkbook.Sheets("Nebenzeiterfassung").Range("D4")
With ThisWorkbook.Sheets("Artikelstammdaten")
   For i = 3 to 143
      If .Cells(i, "A") = B4 Then
         .Cells(i, "C") = D4
      End If
   Next i
End With

Falls der Wert von B4 nur ein einziges Mal in den Stammdaten vorkommt, dann kannst du direkt vor dem "End If" noch ein "Exit For" einfügen.
Gruß,
Helmut

----------------------------
Windows 8.1 (64 Bit) / Office 2013 (32 Bit)
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1576
Registriert: 04. Jul 2013, 09:02

Re: VBA vereinfachen

Beitragvon RPP63 » 06. Okt 2017, 08:13

Moin Helmut!
Ebenfalls nicht nachgeprüft:
VBA liefert manchmal ausgesprochen seltsame Ergebnisse, wenn Variablennamen als Range interpretiert werden können.
Ich finde aber Deinen Ansatz ausgesprochen gut, den Code durch diese Variablen lesbarer zu machen!

Two Cents und Gruß
Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8736
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: VBA vereinfachen

Beitragvon blickema » 06. Okt 2017, 08:13

Okay, sorry.

Also die Schilderung etwas detaillierter.

Ich möchte aus "Tabelle1" im Dropdownmenü auf "B4" den ausgewählten Wert mit einer Liste in "Tabelle2" abgleichen.
Wenn der Wert übereinstimmt, möchte ich per Schaltfunktion(Button) einen eingetragenen Wert aus "Tabelle1" Feld "D4" in die Liste in "Tabelle2" auf "Zeile C" setzen.
Hierbei soll automatisch die Zelle (C1, C2, C3,...etc) in der Spalte mit dem vorab abgeglichenen Wert ausgewählt werden.
blickema
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5
Registriert: 06. Okt 2017, 05:42

Re: VBA vereinfachen

Beitragvon snb » 06. Okt 2017, 08:22

Bitte lade eine Excel Musterdatei hoch !

Verzichte auf verbundene Zellen.

@RPP
So ?

Code: Alles auswählen
Sub M_snb()
  r_A4_D4 = .Sheets("Nebenzeiterfassung").Range("A4:D4")

  With Sheets("Artikelstammdaten")
    r_A1_C143=.range("A1:C143")
 
    For j=3 to 143
      If r_A1_C143(j,1) = r_A4_D4(1,2) Then r_A1_C143(j, 3) = r_A4_D4(1,4)
    Next

    .range("A1:C143")=r_A1_C143
  End With
End Sub
Zuletzt geändert von snb am 06. Okt 2017, 08:34, insgesamt 1-mal geändert.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5274
Registriert: 25. Sep 2014, 16:37

Re: VBA vereinfachen

Beitragvon blickema » 06. Okt 2017, 08:25

Erledigt
Zuletzt geändert von blickema am 06. Okt 2017, 12:54, insgesamt 2-mal geändert.
blickema
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5
Registriert: 06. Okt 2017, 05:42

Re: VBA vereinfachen

Beitragvon blickema » 06. Okt 2017, 08:44

Hat schon funktioniert :D

Ich habe die Variante von HKindler getestet und sie liefert genau das was ich wollte. Vielen lieben Dank 8-)
blickema
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5
Registriert: 06. Okt 2017, 05:42

Re: VBA vereinfachen

Beitragvon shift-del » 06. Okt 2017, 16:03

Blickema ...

... fragte.
... bekam Antworten.
... löschte seine Frage.

Das ist nicht der Sinn dieses Forums.
Wir sehen uns!
... shift-del
Eine Mustertabelle hilft beim Helfen.
Excel Super-Funktionen: VERWEIS(), INDEX(), WAHL()
Benutzeravatar
shift-del
Moderator
 
Beiträge: 19359
Registriert: 25. Jan 2009, 22:54
Wohnort: Ehemaliges Fabrikgelände

Re: VBA vereinfachen

Beitragvon RPP63 » 06. Okt 2017, 16:15

Wobei man darüber streiten könnte, Detlef …
… dass einige Stellschrauben bei Habhaftwerden des Admins geändert werden müssten.
Ich weiß: ist Wunschdenken.

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8736
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: VBA vereinfachen

Beitragvon snb » 06. Okt 2017, 17:01

Es war augenscheinlich nur eine 'Provisorische' Frage.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5274
Registriert: 25. Sep 2014, 16:37

Re: VBA vereinfachen

Beitragvon RPP63 » 06. Okt 2017, 17:15

Ein Niederländer mit Humor!
:mrgreen: :razz:
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8736
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: VBA vereinfachen

Beitragvon snb » 06. Okt 2017, 21:43

Und ein Deutscher der es versteht, bemerkenswert :roll:
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5274
Registriert: 25. Sep 2014, 16:37

Nächste

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: GMG-CC, lupo1 und 17 Gäste