Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
420to424
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
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleife

Schleife
Andre
Hallo
ich hab da folgendes Problem, ich möchte Zeilenweise die Spalte A von z.B. 8 - 100 füllen wobei der Inhalt eine Formel z.B. =INDEX(neu,1) wobei der wert 1 hochgezählt werden soll bis 93 dann halt.
Ich komme dabei nicht weiter hat vielleicht jemand nen Vorschlag?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Schleife
Ahmed
Hi,
du hast 2 möglichkeiten;
1) in der spalte b1 bis b2 trägst die zahl 1 bis 93 und passt deine formel aus ser spalte a
zb spalte a1 (=index(neu, b1) und ziehst die zelle mit dem maus nach unten.
2) du benutzt vba. hier ein bsp.

Sub bla()
For i = 1 To 100
Worksheets(1).Range("a1").Offset(i + 6, 0).Formula = "=index(neu," & i & ")"
Next i
End Sub

das + 6 heisst du beginnst bei a1 + 6 und + i ist bei i = 1 ==>8 also beginnt er in der
a8 zelle die formel zu schreiben.
gruß
ahmed
AW: Schleife
Andre
Hallo,
Das hat super geklappt Ahmed THX.
Das Problem ist zwar gelöst aber wie immer taucht dann schon das nächste auf.
Also in meiner Spalte a8 stehen jetzt untereinander lauter Dateinamen, in spalte c8 soll jetzt die formel ='C:\test\[name.datei]blatt'!$c$1 stehen, wobei Name.Datei ja in Spalte A8 steht, das habe ich bisher so gelöst:

Sub test()
Range("G8").Select
Selection.Copy
Range("C8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C8").Formula = "='C:\test\[" & Range("C8").Value
Range("G9").Select
Selection.Copy
Range("C9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C9").Formula = "='c:\test\[" & Range("C9").Value
End Sub

In Spalte G8 habe ich über eine Formel den Namen mit dem Monat und der Zelle verkettet.
und dann das ganze halt über das vbs dortreinkopiert.
das hat auch wunderbar funktioniert aber mitlerweile ist die Tabelle sehr groß geworden bzw. ich frage aus den anderen Tabellen mehrere Werte ab sodas es ziehmlich unübersichtlich ist und Excel nach 50 Zeilen abbricht und sagt Prozess zu groß.
Wie kann ich das eventuell vereinfachen bzw. dafür sorgen das Excel nicht abbricht?
Gruß
Andre

Anzeige
AW: Schleife
Ahmed
hi andre,
also ich kann bei besten willen dein code nicht nachvoziehen. ich habe es bei mir versucht zum laufen zu bringen aber das geht ja nicht.
das hier ist nicht mal vollständig:
Range("C8").Formula = "='C:\test\[" & Range("C8").Value
zumal du schreibst eine formel in der zelle c8 die aber einen wert aus sich selber einlesen soll. in dieser form kann das code niemals gelaufen haben.
vielleicht erklärst du einfach was du machen willst, dann kann ich eventuell helfen.
gruß
ahmed
AW: Schleife
Andre
Hallo,
also ich habe einen Ordner mit xls dateien mit verschiedenen sich laufend änderenden Namen. Die Tabellen sind alle gleich aufgebaut(12 Blätter). Mein Ziel ist es aus jeder der Tabelle 4 Werte die immer an der gleichen Stelle sind abzufragen ohne immer den Namen zur Tabelle ändern zu müssen. Das bin ich also so angeganngen:
Ich definiere über das Menü Einfügen -&gt Namen -&gt definieren : neu / bezieht sich auf =DATEIEN("c:\test\*.*")
damit erreiche ich ja, dank deiner Formel das er mir die namen der Datein über die vbs:
sub test()
For i = 1 To 100
Worksheets(1).Range("a1").Offset(i + 6, 0).Formula = "=index(neu," & i & ")"
Next i
sub end
fortlaufend untereinander in Spalte A schreibt. Da ich jetzt aber dann z.b. in Spalte B8 beginnend, den Wert von Blatt1 Zelle E5 jeder Tabelle haben will brauche ich ja so eine Formelfür jede Zelle C8 bis C100 ='c:\test\[dateiname1.xls]'!blatt1$E$5
den Blattnamen schreibe ich in Zelle D3. In zelle G8 habe ich das geschrieben:
=VERKETTEN(A8;"]";D3;"'!$E$5")das ergebniss ist dann das "dateiname1.xls]Januar'!$B$4"
so dann weiter
Sub test()
Range("G8").Select 'makiert Zelle G8
Selection.Copy 'Copy
Range("C8").Select 'makiert Zelle C8
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'einfügen der Werte von G8
Range("C8").Formula = "='C:\test\[" & Range("C8").Value '='C:\test\[ das schreibt er vor das was er eingefügt hat
und das habe ich halt versucht so hinzubekommen es hat auch funktioniert aber halt nur 50 Zeilen. Aber ich denke das ich das wohl sehr kompliziert gemacht habe.
hier ist mal meine E-Mail noname111@gmx.de Und die Testdatei habe ich mal hier Hochgeladen verkürzt auf 3 Dateien. https://www.herber.de/bbs/user/5854.xls
Vielleicht hast du ja eine Idee.
Danke schonmal.
Gruß
Andre
Anzeige
AW: Schleife
Ahmed
Hi,
also soweit ich verstanden habe, du hast unzählige xls Datei in dem Ordner C:\test.
Diese besitzen alle das vierte blatt (es muss auch als viertes blatt angeordnet sein, ansonsten sprichst du mich nochmal an).
Aus diesem sollen die Werte aus den Zellen
B4 E5 G8 und I9
ausgelesen und in der zentralen Datei gespeichert werden.
Wenn das so ist, nimm bitte die upgeloadete Datei: https://www.herber.de/bbs/user/5905.xls
sie macht das viel einfacher.
Gruß
Ahmed

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige