Strike Geschrieben 3. April 2002 Geschrieben 3. April 2002 Hallo, ich habe eine Excel Tabelle mit ca. 3000 Datensätzen. Nun möchte ich den Inhalt z.b. aus Feld B1 in C1 kopieren, B2 in C2 usw. Die Problematik hierbei besteht darin, das ich den Inhalt den ich rüber Kopieren möchte in einen Bereits vorhandenen Text einfüge. D.h. In dem Stammfeld (B1) steht z.B. "test" dann möchte ich das der Inhalt aus diesem Feld in (c1) zwischen DD DD Kopiert wird. In (b2) steht dann "test2" dieser in halt soll dann in (c2) auch wieder zwischen "DD DD" kopiert werden. usw. Der Inhalt des Feldes (c1) soll dann so: "DDTestDD" aussehen und der Inhalt von (c2) so: "DDtest2DD" Könnt Ihr mir dabei Helfen? Wäre euch echt sehr verbunden. Gruß Zitieren
Goos Geschrieben 3. April 2002 Geschrieben 3. April 2002 hmmmm steht da denn dann immer DD DD? ...oder woher weisst, zwischen was genau du einen text setzen willst? Zitieren
Strike Geschrieben 3. April 2002 Autor Geschrieben 3. April 2002 Da steht immer der gleiche Wert Sprich da steh drin: "DDblabla DD" und das möchte ich dann durch den Wert der in einem anderen Feld steht ersetzten: "DDtest DD" oder einfach nur den Wert aus dem Feld nehemen und um die "DDDD" erweitern. Da steht natürlich nicht DD sondern ein ganz anderer Text, das ist allerdings nicht relevant denke ich. Zitieren
Goos Geschrieben 3. April 2002 Geschrieben 3. April 2002 na jut dann versuch doch mal was in der art Private Sub test() Dim text1 As String Dim text2 As String Dim text21 As String Dim text22 As String Dim meinsuchtext As String Dim n As Integer meinsuchtext = "suchtext" For a = 1 To 20 text1 = Sheets("Tabelle1").Cells(a, 2) text2 = Sheets("Tabelle1").Cells(a, 3) n = InStr(1, text2, meinsuchtext, 1) If n > 0 Then text21 = Left(text2, n - 1) text22 = Mid(text2, n + Len(meinsuchtext), Len(text2) - n) Sheets("Tabelle1").Cells(a, 3) = text21 + text1 + text22 Sheets("Tabelle1").Cells(a, 2) = "" End If Next a End Sub [/PHP] Sollte dir weiterhelfen...hoff ich mal Goos Zitieren
Strike Geschrieben 4. April 2002 Autor Geschrieben 4. April 2002 Und wo zählt er dann die Zellen hoch?? Wo geht er automatisch auf Zeile a3,a4 etc.??? Zitieren
fireworker Geschrieben 4. April 2002 Geschrieben 4. April 2002 Original geschrieben von Strike Und wo zählt er dann die Zellen hoch?? Wo geht er automatisch auf Zeile a3,a4 etc.??? Mußt in der Schleife: For a = 1 To 20 text1 = Sheets("Tabelle1").Cells(a, 2) text2 = Sheets("Tabelle1").Cells(a, 3) n = InStr(1, text2, meinsuchtext, 1) If n > 0 Then text21 = Left(text2, n - 1) text22 = Mid(text2, n + Len(meinsuchtext), Len(text2) - n) Sheets("Tabelle1").Cells(a, 3) = text21 + text1 + text22 Sheets("Tabelle1").Cells(a, 2) = "" End If Next a nochmals eine Schleife setzen, z.B: For a = 1 To 20 For b = 2 To 21 text1 = Sheets("Tabelle1").Cells(a, b-1) text2 = Sheets("Tabelle1").Cells(a, n = InStr(1, text2, meinsuchtext, 1) If n > 0 Then text21 = Left(text2, n - 1) text22 = Mid(text2, n + Len(meinsuchtext), Len(text2) - n) Sheets("Tabelle1").Cells(a, = text21 + text1 + text22 Sheets("Tabelle1").Cells(a, b-1) = "" End If Next b Next a Zitieren
Goos Geschrieben 4. April 2002 Geschrieben 4. April 2002 Wat solln das nun? also die Schleife mit dem a zaehlt doch genug hoch denk ich. Nach der Beschreibung gings ja immer nur um die b und c spalte. Und gut mein a nimmt jetzt nur die ersten 20 Zeilen, aber ich glaub, das kann man wohl noch ohne Probleme modifizieren was Fireworker da vorschlaegt....hmmm ich versteh nicht wozu das gut sein soll, wenn man die Daten dann in Spalten mit immer hoeherem Index kopiert, wobei ja dann auch in jeder neuen Spalte der Suchtext vorkommen muesste.......Ich glaub nich, dass jemand solche Daten in Tabellen hat Goos Zitieren
Strike Geschrieben 4. April 2002 Autor Geschrieben 4. April 2002 Nee, irgendwie funzt das nicht , aber vielen Dank!!! Versuche es nochmal zu erklären! Ich habe in Spalte"C" ca 3000 versch. Daten. In die Spalte F Soll dann der Inhalt von "C" von Style und black eingebackt werden. Das ganze soll so: Styleinhalt"C" black dann aussehen. Style und black bleibt immer nur das dazwischen ist halt der Inhalt aus "C". Irgendwie ist mir das nicht verständlich was ihr mir da gegeben habt. Kurz noch was zur Syntax: text1 = Sheets(Tablestyle).Cells(c, 2) zeigt mir VB als falsch an, warum?? Zitieren
Goos Geschrieben 4. April 2002 Geschrieben 4. April 2002 Na dann also nochmal von vorne mit Kommentaren Wenn deine Blatt Tablestyle heisst, dann musst anstelle von text1 = Sheets(Tablestyle).Cells(c, 2) text1 = Sheets("Tablestyle").Cells(c, 2) nehmen denk ich und Cells(c,2) is auch nicht Zelle C2 Cells(y,x) is die Sytnax, also erst reihe und dann spalte angeben, somit waere dann Zelle C2 Cells(2,3) (Zweite Reihe, Dritte Spalte) Private Sub test() Dim text1 As String Dim text2 As String Dim text21 As String Dim text22 As String Dim meinsuchtext As String Dim n As Integer meinsuchtext = "suchtext" ' hier muss in suchtext rein, also wenn du Style und black in F stehen hasst dann " ", insofern zwischen den beiden ein Leerzeichen ist For a = 1 To 3000 ' hier gibst die Anzahl deiner reihen an, also 3000 oder so text1 = Sheets("Tabelle1").Cells(a, 2) text2 = Sheets("Tabelle1").Cells(a, 3) n = InStr(1, text2, meinsuchtext, 1) If n > 0 Then text21 = Left(text2, n - 1) text22 = Mid(text2, n + Len(meinsuchtext), Len(text2) - n) Sheets("Tabelle1").Cells(a, 3) = text21 + text1 + text22 Sheets("Tabelle1").Cells(a, 2) = "" End If Next a End Sub [/PHP] Wenn du aber immer Style black dazuhaben willst, dann gehts ansich schon auch einfacher Goos Zitieren
Strike Geschrieben 4. April 2002 Autor Geschrieben 4. April 2002 Ich peile es nicht!!! :confused: Manoman!!!! Ich doof! Also iche gebe das: text1 = Sheets("Tablestyle").Cells(c, 2) ein und er mäckert wieder, naja egal scheinbar möchte er es so: text1 = "Sheets(Tablestyle).Cells(c, 2)" Ok egal! Ich will immer den gleichen Text dazwischen, dann müsste ich das doch so machen: Private Sub test() Dim text1 As String Dim text2 As String Dim text21 As String Dim text22 As String Dim meinsuchtext As String Dim n As Integer meinsuchtext = "styleblack" For a = 1 To 3000 ' text1 = "Sheets(Tabelle1).Cells(a, 2)" text2 = "Sheets(Tabelle1).Cells(a, 3)" n = InStr(1, text2, meinsuchtext, 1) If n > 0 Then text21 = Left(text2, n - 1) text22 = Mid(text2, n + Len(meinsuchtext), Len(text2) - n) Sheets("Tabelle1").Cells(a, 3) = text21 + text1 + text22 Sheets("Tabelle1").Cells(a, 2) = "" End If Next a End Sub Zitieren
Goos Geschrieben 4. April 2002 Geschrieben 4. April 2002 Hihihi...ich glaub du hast recht...du peilst est nicht *g* Alsoooo Manoman!!!! Ich doof! Also iche gebe das: text1 = Sheets("Tablestyle").Cells(c, 2) ein und er mäckert wieder, naja egal scheinbar möchte er es so: text1 = "Sheets(Tablestyle).Cells(c, 2)" bei text1 = Sheets("Tablestyle").Cells(c, 2) beschwert er sich insofern es ein Blatt mit dem Namen Tablestyle gibt nur dann, wenn c keine integer variable ist, oder in c halt nix passendes drinsteht. Cells(y,x) erfordert halt zwei ZAHLEN ...mit Spaltenbezeichnungen wie A, B, C is da halt nich. Wie jetzt du willst immer den gleichen Text dazwischen machen? Ich dachte der Text der dazwischen soll steht in Spalte C und is vondaher immer unterschiedlich. Fuer meinsuchtext "styleblack" zu setzen is aber auch nich sinnvoll, weils halt so gemacht ist, dass der "meinsuchtext" der text ist, der ersetzt wird. Also waer das dann bei spalte C "blabla" und spalte F "teststyleblacknochwas" am ende in Zeile F ein "testblablanochwas" Ansich ging ich ja davon aus, dass du zwischen "DD DD" was dazwischensetzen willst.....in dem Fall waer dann der entsprechende suchtext " ", also das Leerzeichen zwischen den D`s Vielleicht solltest mal posten, was in C steht und zu anfang in F und dann auch, was danach in F stehen soll, dann wirds vielleicht etwas verstaendlicher fuer mich Bye Goos Zitieren
Strike Geschrieben 8. April 2002 Autor Geschrieben 8. April 2002 In C stehen vortlaufende Nummern, welche in spalte F "eingebackt von einem Bestimmten text stehen sollen. Bsp.: In C/1 steht 456, dann soll in F/1 Bla465bla stehen. In C/2 steht 555, dann soll in F/2 Bla555bla stehn. usw. D.h der Inhalt aus C soll in F dargestellt werden, nur halt eingepackt von einem bestimmten Text. Und ich doof! Zitieren
Goos Geschrieben 9. April 2002 Geschrieben 9. April 2002 1. Wir alle doof 2. Haettest ja auch gleich sagen koennen, was du willst 3. Man könnte dann ja ... Private Sub test() For a = 1 To 3000 Sheets("Tabelle1").Cells(a, 6) = "bla1" + Sheets("Tabelle1").Cells(a, 3) + "bla2" Next a End Sub [/PHP] Is doch irgendwie schon kuerzer geworden oder? Bye Goos Zitieren
Strike Geschrieben 12. April 2002 Autor Geschrieben 12. April 2002 Danke! Hätte nur noch eine Frage bei Sheets("Tabellenname??") kommt da der Tabellenname rein?? und wie gebe ich bei Cells die Koordinate (x,Y) für die Spalt "L"?? Zitieren
Goos Geschrieben 15. April 2002 Geschrieben 15. April 2002 Hoi Hätte nur noch eine Frage bei Sheets("Tabellenname??") kommt da der Tabellenname rein?? Jo Tabellenname is wie der Name schon sagt der Tabellenname In nem neuen Workbook halt standardmaessig Tabelle1. Du kannst aber auch anstelle von Sheets("Tabelle1") nur Sheets(1) schreiben, aber das is nicht so sicher, das nimmt dann halt das erste Sheet, aber das muss ja nicht immer Tabelle1 sein. Und hmmmm..... du willst also bei Cells die Spalte L angeben? Jetzt auf das Beispiel bezogen, oder allgemein? Allgemein gibts dann Columns, du brauchst also nicht Cells verweden. In unserem Beispiel aber mit Cells(Y,X) also nicht Cells(X,Y) *g* ( ja is idiotisch, aber ist halt so) da waere die Spalte "L" Cells(a,12) wenn wir mal davon ausgehen, dass L der 12. Buchstabe im Alphabet ist. Also schoenen Tag noch Goos Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.