Anpassen Zellinhalt
#1
Hallo zusammen :)

Müsste eine kleine Änderung sein aber ich habe wohl irgendwo einen Denkfehler oder Flüchtigkeitsfehler

Ich würde gerne den Inhalt der Zellen von D4:D100 ändern und zwar soll da nur die ersten Zeichen des Inhaltes drinstehen.

Beispiel: In Zelle D4 steht D123456789 und am Ende soll D1234 stehen

Wollte dies so lösen aber das funktioniert nicht

Code:
For Y = 2 To 100
Worksheets("PP_" & Arr(I)).Cell(Y, 4) = Left(Worksheets("PP_" & Arr(I)).Cell(Y, 4), 5)
Next

Kann mir da jemand helfen?

Lg Primo
Antworten Top
#2
Moin!
Ich spendiere ein (besser 2) s
Das Objekt heißt Cells()

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Primo Centurio
Antworten Top
#3
Hahaha  19 das nächste Mal kannst du mir noch mit dem Kochlöffel eins auf den Kopf hauen  72  macht ja Sinn, wenn ich noch weiter Zellen ansprechen muss
Danke dir Ralf.
Antworten Top
#4
Mal ein Tipp!
Wenn Du (noch) unsicher bist, solltest Du den Umweg über eine Objektvariable gehen, die Du per Set = zuweisen musst.
Code:
Dim wks As Worksheet
Set wks = Worksheets("Tabelle1")

Das hat den großen Vorteil, dass die Intellisense funktioniert!
Nach Eingabe von wks.c erscheint eine Listbox mit Methoden und Eigenschaften des Objekts:


Angehängte Dateien Thumbnail(s)
   
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Primo Centurio
Antworten Top
#5
Evt kannst du mir noch bei was ähnlichem helfen.

Gibt es ne Möglichkeit bei VBA den Inhalt der Zelle auf die Breite der Zelle zu Kürzen?

Beispiel: Wenn "Amadeus Mozart" der Inhalt ist wird in der Ansicht nur "Amadeus Moz" angezeigt, kann ich über ein Befehl sagen, dass er den Inhalt von "Amadeus Mozart" auf "Amadeus Moz" ändert?
Die Anzahl der Zeichen ist von Zelle zu Zelle unterschiedlich. Bi Neugierig ob das geht.

Lg Primo

(03.07.2022, 11:05)RPP63 schrieb: Mal ein Tipp!
Wenn Du (noch) unsicher bist, solltest Du den Umweg über eine Objektvariable gehen, die Du per Set = zuweisen musst.
Code:
Dim wks As Worksheet
Set wks = Worksheets("Tabelle1")

Das hat den großen Vorteil, dass die Intellisense funktioniert!
Nach Eingabe von wks.c erscheint eine Listbox mit Methoden und Eigenschaften des Objekts:

Oh das kannte ich noch nicht mit wks.c. 
Danke :)
Antworten Top
#6
Hallo Primo, 19 

das kann man zweideutig verstehen. 21 

Meinst du das?

Da ist der VBA-Befehl: Dodgy 

Code:
ActiveCell.HorizontalAlignment = xlFill

Statt "ActiveCell" dann eben die Zelle die du brauchst.

Oder meinst du wirlich "kürzen" im Sinne von abschneiden?
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • Primo Centurio
Antworten Top
#7
(03.07.2022, 11:38)Case schrieb: Hallo Primo, 19 

das kann man zweideutig verstehen. 21 

Meinst du das?

Da ist der VBA-Befehl: Dodgy 

Code:
ActiveCell.HorizontalAlignment = xlFill

Statt "ActiveCell" dann eben die Zelle die du brauchst.

Oder meinst du wirlich "kürzen" im Sinne von abschneiden?

19 dann habe ich ja jemanden zum lachen gebracht.

Ich meine wirklich kürzen, dass die Buchstaben, welche in der Ansicht nicht gezeigt werden, aus der Zelle gelöscht werden.

Lg Primo
Antworten Top
#8
Hallo Primo, 19 

prinzipiell so: 21 

Code:
Option Explicit
Public Sub Main_1()
    Dim strTMP As String
    strTMP = "Donaudampfschifffahrtsgesellschaftskapitänspatent"
    If Len(strTMP) > 10 Then strTMP = Left(strTMP, 10)
    Debug.Print strTMP
End Sub
Public Sub Main_2()
    Dim strTMP As String
    strTMP = "Amadeus Mozart"
    If Len(strTMP) > 11 Then strTMP = Left(strTMP, 11)
    Debug.Print strTMP
End Sub
Public Sub Main_3()
    Dim strTMP As String * 11
    strTMP = "Amadeus Mozart"
    Debug.Print strTMP
End Sub

Allerdings haben diese Varianten ein Problem - die Zahl 10 bzw. 11. Dodgy 

Das ist von vielen Faktoren abhängig (Schriftgröße, Schriftart und, und und...) siehe hier...
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • Primo Centurio
Antworten Top
#9
(03.07.2022, 13:03)Case schrieb: Hallo Primo, 19 

prinzipiell so: 21 

Code:
Option Explicit
Public Sub Main_1()
    Dim strTMP As String
    strTMP = "Donaudampfschifffahrtsgesellschaftskapitänspatent"
    If Len(strTMP) > 10 Then strTMP = Left(strTMP, 10)
    Debug.Print strTMP
End Sub
Public Sub Main_2()
    Dim strTMP As String
    strTMP = "Amadeus Mozart"
    If Len(strTMP) > 11 Then strTMP = Left(strTMP, 11)
    Debug.Print strTMP
End Sub
Public Sub Main_3()
    Dim strTMP As String * 11
    strTMP = "Amadeus Mozart"
    Debug.Print strTMP
End Sub

Allerdings haben diese Varianten ein Problem - die Zahl 10 bzw. 11. Dodgy 

Das ist von vielen Faktoren abhängig (Schriftgröße, Schriftart und, und und...) siehe hier...
 Danke Case, werde mich in den nächsten Tagen mal damit auseinander setzen :)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste