Microsoft Excel

Herbers Excel/VBA-Archiv

Wertübergabe an Zellen per VBA

Betrifft: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 09:33:39

Hallo Zusammen,

ich habe am 08.08.14 bereits einen Hilfeaufruf gestartet, jedoch kann ich dazu nicht mehr antworten. Deswegen nun erneut:

Hallo!

Ich habe eine Eingabe von max. 4 Zeichen "ABCD" in einer Zelle.

Wie funktioniert das das sobald ich fertig bin foglende Formatierung der Zelle bekomme: "0000ABCD_ABC"

Das "_ABC" ist immer gleich, jedoch varrieren die Eingaben zwischen 3-4 Zeichen.

Vielen Dank!

Hi,

ohne VBA geht das nur mit einer Hilfsspalte.
Eingabe erfolgt in A1. Dann z. B. in B1:

="0000"&A1&"_ABC"

Ansonsten ist das eben nur via VBA möglich:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERR_HANDLER
With Target
    If .Column = 1 Then 'wirkt in Spalte A
        If .Count = 1 Then
            Application.EnableEvents = False
            .Value = "0000" & .Value & "_ABC"
        End If
    End If
End With
ERR_HANDLER:
Application.EnableEvents = True
End Sub

VG; Boris

Damals hat mir Boris einen guten Tipp gegeben. Jedoch möchte ich nicht nur das es formatiert ist sondern der Wert übergeben wird. Desweiteren würde ich gern für jeden Wert zwischen B9:I16 diese Anwendung.

Vielen Dank!!

  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Martin
Geschrieben am: 27.08.2014 10:09:36

Hallo Thorsten,

die Antwort von Boris ist falsch, denn mit einer entsprechenden Zellenformatierung geht das auch ohne Formel und ohne VBA:



Viele Grüße

Martin


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 10:45:50

Vielen Dank für deine schnelle Hilfe. Ich habe vergessen zu erwähnen das ich nach der Formatierung ein Makro hab das mir die Dateien aus Ordner sucht. Jetzt ist das ja so das der Wert der Zelle der gleiche bleibt "ABCD".

Wie schaffe ich es in einem Bereich die Werte einzugeben quasi die 4 Ziffern und von mir aus per Button klick er mir für jeden Wert die fehlenden ergänzt. Mir reicht auch schon das es am Ende so aussieht: 0000ABCD

Vielen Dank


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Rudi Maintaire
Geschrieben am: 27.08.2014 11:13:50

Hallo,
lies die Zellen mit
Var=Zelle.TEXT
aus. Dann enthält Var den Inhalt wie dargestellt.

Gruß
Rudi


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 11:29:39

Inwiefern funktioniert das? Ich habe leider dazu keinen VBA Code.

Nochmal zur Erklärung: Ich habe einen Bereich an Zellen, dieser soll befüllt werden mit einer vierstelligen Nummer, per Button Klick soll diese Nummer umgeswitcht werden in eine 8Stellige Nummer + "_000"

Somit von der Eingabe: "1234" zu 00001234_000

Die Zelle soll nicht formatiert sein am Ende sondern den Wert "00001234_000" haben.

Vielen Dank!!!


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Martin
Geschrieben am: 27.08.2014 11:45:54

Hallo Thorsten,

irgendwie widersprechen sich deine Aussagen. Zuerst schreibst du:

"Ich habe vergessen zu erwähnen das ich nach der Formatierung ein Makro hab das mir die Dateien aus Ordner sucht."

Rudi gibt dir den VBA-Code zum Auslesen des Zellinhalts. Dann schreibst du auf einmal:

"Inwiefern funktioniert das? Ich habe leider dazu keinen VBA Code."

Rudi hat dir VBA-Code gegeben, der in deinem Makro einfach eingebaut werden muss. Wenn du uns dein Makro aber vorenthälst, dann können wir dir beim besten Willen nicht helfen.

Viele Grüße

Martin


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 13:05:58

Vielen Dank Martin für deinen Hinweis.

Ich habe leider noch keinen VBA Code der soetwas bewerkstelligt.

Den angesprochenen VBA Code den ich habe, nutze ich um den Zelleninhalt in einem Ordern zu suchen (sprich die Datei ausfindig zu machen) und zu kopieren.

Mein Problem ist es eben wie ich von den 4 stelligen Ziffern ich es hinbekomme das der Wert durch Button Klick oder etc. in das Format gebracht wird.

Hoffe ich habe mich diesmal verständlicher ausgedrückt und bedanke mich für eure Geduld sowie Hilfe!

VG


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 13:07:38

Ergänzung: Nicht nur Format sondern er soll den festen Wert haben, damit er mir auch die Datei findet in dem Ordner mit meinem Makro.


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 13:42:41

Also nur um noch mehr Klarheit zu schaffen:

Es wird eine 4 Stellige Zahl eingegeben und diese soll immer den selben Zusatz bekommen. Von 1234 soll später folgendes werden: 00001234_012.

Nur dieses 4 Ziffern sind jeweils anders! Es muss so in der Zelle stehen damit ich später mit dem Makro nach dieser Datei suchen kann.

Vielen Dank und Grüsse


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Rudi Maintaire
Geschrieben am: 27.08.2014 14:19:30

Hallo,
Es muss so in der Zelle stehen
ist doch Quatsch.

Wenn das immer gleich ist, kannst du den String auch im Makro zusammenbasteln.
Suchen = "0000" &Zelle &"_012"

Umwandlung der Zahl:

Private Sub Worksheet_Change(ByVal Target As Range)
  On Error GoTo ERREXIT
  Application.EnableEvents = False
  If Target <> "" Then Target = "0000" & Target & "_012"
ERREXIT:
  Application.EnableEvents = True
End Sub
Gruß
Rudi


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 14:33:52

Danke Rudi!

Ja doch die muss so drin stehen, da meine Datei sagen wir mal "00001111_012.txt" heißt und bisher hat es nur geklappt wenn "00001111_012" in der Zelle stand.

Eine Frage zu deinem Makro. Erstmal kann ich es nicht ausführen?! Desweiteren wie sage ich ihm die festegelegte Range?

VG & Danke


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 14:44:57

Was haltet Ihr von diesem:

Option Explicit

Sub Worksheet_Change()
 Dim Target As Range
 For Each Target In Range("B9:I16")
   Application.EnableEvents = False
   If Target <> "" Then Target = "0000" & Target & "_012"

   Application.EnableEvents = True
Next
 End Sub

so würde es funktionieren!


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 14:52:36

Das Problem daran ist nur das wenn ich eine 3 stellige Ziffer eingeben also 0123 das er mir folgendes schreibt: 0000123_012.

Jedoch bräuchte ich die führende 0 auch.


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Rudi Maintaire
Geschrieben am: 27.08.2014 15:17:19

Hallo,
Target = "0000" & Format(Target,"0000") & "_012"

Gruß
Rudi


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 15:28:50

Vielen Vielen Dank für eure Hilfe!!

War ne schwere Geburt aber vielen Dank !!


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: Thorsten
Geschrieben am: 27.08.2014 16:17:32

Okey eines noch:

Jetzt kann ich eine 4 Stellige Zahl eingeben und in das bestimmte Format mir ausgeben lassen, damit mein anderes Makro die Dateien in den Ordnern suchen kann und findet es auch.

Wie kann ich diesen Schritt jetzt wieder rückgängig machen damit ich wieder diese 4 Ziffern bekomme. Es sollte möglich sein zwischen beiden Ansichten (Sprich den 4 stelligen Ziffern und dem "00001234_012") switchen zu könnnen.

Mit Excel würde es ja mit =Teil(etc.) funktionieren. Wie bewerkstellige ich das jedoch auf die gesamte Range.

Vielen Dank!


  

Betrifft: AW: Wertübergabe an Zellen per VBA von: yummi
Geschrieben am: 27.08.2014 14:29:52

Hallo Thorsten,

wenn Du die Zahl eingibst, dann kannst Du sie doch auch einer Variablen speichern.
dann gehtst du hin und sagst meinevar = "0000" & meinevar & "_012"
danach schreibst du die Variable dann in die Zelle wo sie hin soll.
Und falls das _012 auch noch veränderbar ist, dann musst du das halt vor dem anhängen entsprechend berechnen.

Ichh offe, ich hab dein Problem richtig verstanden und es hilft
gruß
yummi


 

Beiträge aus den Excel-Beispielen zum Thema "Wertübergabe an Zellen per VBA"