Zum Inhalt springen

Makro unter Excel


Strike

Empfohlene Beiträge

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ß

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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, B)

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, B) = text21 + text1 + text22

Sheets("Tabelle1").Cells(a, b-1) = ""

End If

Next b

Next a

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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??

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

:D 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hihihi...ich glaub du hast recht...du peilst est nicht *g* :D

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

:D

Und ich doof!:P

Link zu diesem Kommentar
Auf anderen Seiten teilen

1. Wir alle doof :D

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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* :D ( 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...