Anzeige
Archiv - Navigation
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
664to668
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Left Funktion implementieren

Left Funktion implementieren
15.09.2005 14:09:11
Janni
Hallo zusammen,
ich habe eine Tabelle("Daten") und möchte das die ersten 9 Zeichen jeder Zeile in ein zweites Sheet("Ergebnis") kopiert werden, doch so wie ich es implementiert habe, werden alle 20 Zeichen kopiert. Was mache ich falsch, hier der Code:

Sub Do_Chart1()
Dim readln As Long
Dim writeln As Long
writeln = 0
For readln = 1 To 10000
If Left(Worksheets("Daten").Cells(readln, 1).Value, 9) <> "" Then
writeln = writeln + 1
If writeln >= 0 Then
Call DO_Copy("Ergebnis", readln, writeln, 0)
End If
End If
Next readln
End Sub


Danke schonmal im voraus.
Gruss Janni

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Left Funktion implementieren
15.09.2005 14:31:59
PeterW
Hallo Janni,
ich würde es so versuchen:

Sub Do_Chart1()
Dim readln As Long
Dim writeln As Long
Dim str As String
'writeln = 0
'überflüssig, da nach Dimensionierung sowieso 0
For readln = 1 To 10000
str = Left(Worksheets("Daten").Cells(readln, 1).Value, 9)
If str <> "" Then
writeln = writeln + 1
'If writeln >= 0 Then
'diese Bedingung wird immer erfüllt!!
str.Copy Sheets("Ergebnis").Cells(writeln, 1)'evtl. Spalte anpassen!!
'End If
End If
Next
End Sub

Gruß
Peter
AW: Left Funktion implementieren
15.09.2005 14:35:20
Volker
Hallo Janni,
abgesehen davon das das etwas umständlich ist, verschweigst du uns leider den Inhalt von "DO_COPY", wo offensichtlich der Hund begraben ist
Warum nicht ganz kurz:
for readln=1 to 10000
If Cells(readln, 1) "" Then
writeln = writeln + 1
workbooks("TabelleXYZ").cells(writeln,1)=left(Cells(readln, 1),9)
End If
next
Gruß
Volker
Anzeige
AW: Left Funktion implementieren
15.09.2005 14:58:56
Janni
Hi zusammen,
ich habe die Datei mal hochgeladen (https://www.herber.de/bbs/user/26601.xls), das ihr Sie euch mal ansehen könnt, habe beide Varianten von euch ausprobiert, aber es wird nicht nur die ersten 9 Zeichen gelesen und kopiert, sondern der komplette Zellenblock. Ich will einfach nur das Makro ausführen und das in dem Sheet "Ergebnis" nur die Zahlen stehen. Hoffe ihr versteht mein Problem.
Gruss Janni
AW: Left Funktion implementieren
15.09.2005 15:13:06
Volker
Hallo Janni,
du darfst den link nicht in Klammern setzen, sonst geht er nicht.
Wie gesagt, deine DO_COPY ist nicht nur flüssig, sondern überflüssig, egal wie sie aussieht. Außerdem macht sie tatsächlich nicht das, was du wolltest.
Die Zeile...
"Worksheets(Chart).Cells(read2 + 1, 1 + Offset).Value = Worksheets("Daten").Cells(read, 1).Value"
...kopiert eindeutig den kompletten Inhalt der Zelle und nicht die ersten 9 Zeichen.
Nicht das ich beleidigt wäre, aber was stimmt nicht mit meinen Vorschlag ;-)
Gruß
Volker
Anzeige
AW: Left Funktion implementieren
15.09.2005 15:39:53
Janni
Hi zusammen,
ich wusste nicht das es nicht in Klammern stehen darf, hier nochmal:
https://www.herber.de/bbs/user/26602.xls
Bei deinem Vorschlag wird nichts desto trotz immer noch der ganze Zellenblock kopiert.
Gruss Janni
AW: Left Funktion implementieren
15.09.2005 15:53:31
Volker
sorry, wundert mich, das überhaupt was kopiert wurde.
Ich hab nämlich "worbooks("Ergebnis")... stat "worksheets("Ergebnis")... geschrieben.
Also hier noch mal richtig:

Sub kopieren()
For readln = 1 To 10000
If Cells(readln, 1) <> "" Then
writeln = writeln + 1
Worksheets("Ergebnis").Cells(writeln, 1) = Left(Cells(readln, 1), 9)
End If
Next
End Sub

Wenn du dir allerdings, wie von Peter vorgeschlagen, den Text per Menü
"Daten/Text in Spalten" aufteilen läßt, kannst du dir dein Makro sparen.
Alternativ gibt es auch die Tabellenfkt. LINKS(Bezug,Länge), die es auch tut.
Gruß
Volker
Anzeige
AW: Left Funktion implementieren
15.09.2005 16:08:45
Janni
Danke hat endlich geklappt, warum einfach wenn es auch schwer geht:-))))
war 'ne schwere Geburt ;-) (o.T.)
15.09.2005 16:36:15
Volker
.
AW: Left Funktion implementieren
15.09.2005 15:20:19
PeterW
Hallo Janni,
du baust eine unsaubere Tabelle auf und wunderst dich dann über Probleme mit einem Makro. Teile deine Informationen auf (Daten - Text in Spalten) dann hast du die Werte schön isoliert und kannst sie problemlos weiter verarbeiten.
Ansonsten hat Volker Recht.
Gruß
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige