419 Aufrufe
Gefragt in Tabellenkalkulation von letty19 Einsteiger_in (88 Punkte)
Hallo Leute

Könnte mir bitte jemand mit einem Makro helfen

Möchte gerne in Blatt A einen bestimmten Bereich von D2-H20 die mit Positiven und Negativen Zahlen gefüllt sind nur die positiven Zahlen von 0-45 auslesen
Und diese dann in Blatt B ab Position A 5 Horizontal einsetzten

Kann man das so umsetzten?

18 Antworten

0 Punkte
Beantwortet von letty19 Einsteiger_in (88 Punkte)

Hi xlking

hast Recht war mein Fehler Sorry

dieser Ansatz ist auch der falsche

.........Ist es das was du erreichen willst?

das was ich erreichen will ist das zu den gefunden Zahlen jeweils +2/-2 dazugerechnet wird

also

20 5 30

19 6 29

18 7 28

17 8 27

16 9 26

die Minus Wert sollen rausfliegen auch über die Zahl 45 soll es nicht gehen

0 Punkte
Beantwortet von xlking Experte (1.5k Punkte)
Ähem, Jetzt bin ich derjenige der aufm Schlauch steht. Wo in deiner Auflistung zählst zwei dazu bzw. ziehst du 2 ab? Ich sehe nur eine Liste mit drei Spalten, wobei sich die erste und letzte um jeweils 1 verringert und die mittlere um 1 erhöht. Minuswerte die rausfliegen sollen, sind gar nicht enthalten. Aber durch den Else-Teil sollten evtl. vorhandene Minuswerte sowie Werte >45 automatisch rausfliegen. Was du mit den übrigen Werten zwischen 0 und 45 anstellst ist deine Sache. Ich hab dir ja gezeigt wie du jede Zelle im Bereich durchlaufen kannst und wie du auf den Zellinhalt (hier c) zugreifen kannst. Um nun einen Wert z.b. um 2 zu erhöhen brauchst du nur innerhalb der Schleife c.Value = c.Value + 2 (oder kurz: c = c + 2) machen und fertig ist es. Was auch immer du mit c vorhast, es ist der Inhalt der jeweiligen Zelle. Dabei wird im Bereich zeilenweise von links nach rechts vorgegangen.

Solltest du weitere Hilfe benötigen kannst du dich ja jederzeit nochmal melden.

Gruß Mr. K.
0 Punkte
Beantwortet von letty19 Einsteiger_in (88 Punkte)

Hi xlking

kannst du mir bitte nochmal helfen

würde gerne ab Zelle N25 alle Einträge in eine txt abspeichern

Name der txt Datei soll Zahlen heißen

0 Punkte
Beantwortet von xlking Experte (1.5k Punkte)

Hallo letty,

Auch dafür brauchst du wieder eine Schleife. Je nachdem wo deine Einträge stehen, kann diese unterschiedlich ausfallen. Falls du einen festen Bereich definiert hast, kannst du wieder jede einzelne Zelle (hier durch die Variable c vertreten) durchlaufen. Im Prinzip geht das dann in etwa so:

 Pfad = ThisWorkbook.Path & "\" & "Zahlen.txt"
 
 Open Pfad For Output As #1
   For Each c In Range("N25:N30")
     Print #1, c
   Next c
 Close #1

Leider machst du keine näheren Angaben, wie und wo deine auszugebenden Daten stehen und ob die Anzahl fix oder variabel ist. Die Spalte N spielte in diesem Thread bislang noch keine Rolle. Wenn du die Angaben noch etwas präzisierst kann ich dir vielleicht noch alternative Schleifen anbieten.

Erstmal liebe Grüße

Mr. K. 

0 Punkte
Beantwortet von letty19 Einsteiger_in (88 Punkte)
Entschuldige xlking hab es schlecht erklärt

ich bräuchte bitte Alle Zahlen die in Zelle 25 stehen in eine txt abgespeichert

die txt Datei sollte dann z.b so ausehen

1,33,19,28,38

alle Zahlen nebeneinander

geht das
0 Punkte
Beantwortet von xlking Experte (1.5k Punkte)

Hi Letty,

Das geht schon, macht für mich aber wenig Sinn. Wenn du die Daten in der Textdatei nebeneinander stehen hast musst du sie beim Auslesen nach Excel erst umständlich mit TextInSpalten wieder vereinzeln. Aber wenn du das so möchtest hier ein einfacher Code dafür: 

Dim Pfad As String, s As String

Pfad = ThisWorkbook.Path & "\Zahlen.txt"

For Each c In Range(Range("N25"), Cells(25, Columns.Count).End(xlToLeft))
  s = s & c & ","
Next c

s = Left(s, Len(s) - 1)

Open Pfad For Output As #1
Print #1, s
Close #1

Gruß Mr. K.

0 Punkte
Beantwortet von letty19 Einsteiger_in (88 Punkte)
Hi

geht leider nicht

er schreibt

Fehler beim Kompillieren

Variable nicht definiert
0 Punkte
Beantwortet von letty19 Einsteiger_in (88 Punkte)
Konnte es selber lösen

Danke für das Script
...