Hallo zusammen !
Ich möchte den Text aus einer InputBox mit dem Inhalt einer Zelle in
einer neuen Zelle verknüpfen:
Dim Text As string
Text = InputBox ("Text", "Eingabe", "Artikelname")
Range("F2").Select
ActiveCell.FormulaR1C1 = "=RC[-1]& x " & Text ????
HIER HAB ICH MEINE SCWIERIGKEITEN !!!
In "E2" (RC[-1]) steht die Menge, Text ist die Artikelbezeichnung
und dies möchte ich gerne als Zeichenkette in Zelle "F2" einfügen:
Ergebnis-Beispiel : " 5 x Dichtung"
Nachher das Ganze runterkopieren und in Werte wandeln ist kein Problem.
Wer kann mir da helfen?
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
In Deiner ActiveCell Formel sind die Anführungsstriche schon falsch.
Dim Wert as Integer
Wert = ActiveCell
Cells(2,6) = Wert & " x " & "Text"
2,6 ist die Zelle F2
Hallo Peterson,
da ich in der Tabelle ca. 20 bis 500 Zeilen habe,
muß ich wohl über " = RC[-1] " gehen.
"Text" ist die Variable, die ich als Bezeichner am Anfang eingebe.
Den automatisch generierten Inhalt der Zelle F2 "=E2& x Dichtung"
möchte ich dann nach F3:fn kopieren, also die Formel.
Und die Formel kopierbar in die Zelle "F2" zu bekommen -
da hab ich jetzt die Schwierigkeiten.
Versuche mal, die Zelle direkt anzusprechen.
Du benutzt den Umweg:
Range("F2").Select
ActiveCell.FormulaR1C1 =
Ohne Umweg wäre es:
Range("F2").FormulaR1C1 = "Dein Inhalt"
Vielleicht hilft das ja weiter.
Ich habe mal in alte Makros bei mir reingeschaut.
Ich glaube Deine Formel =RC[-1] ist falsch.
Die richtige Schreibweise ist =R[-1]C
In meinem Makro erstelle ich eine Jahrestabelle und setze ich in verschiedene Zellen eine Berechnungssumme ein, die dann später Werte ermitteln soll.
Cells(32, I + 1).FormulaR1C1 = "=240-SUM(R[-31]C:R[-1]C)"
Das fertige Ergebnis in so einer Zelle sieht dann so aus:
=240-SUMME(B1:B31)
In der nächsten Telle so:
=240-SUMME(D1:D31)
usw.
Hallo Peterson,
danke für Deine Tipp's.
Das Ansprechen der Zellen ist nicht das Problem.
Das Problem liegt im Füllen.
Wenn ich mit der Variable "Text" den Umweg über eine Zelle gehe, in die ich die Variabe schreibe, und dann die Zellen aneinanderbaue, funktioniert das einwandfrei:
...
' Dimensionierung der Variablen
Dim Text As String
' Abfrage Text
Text = InputBox("Artikel", "Benutzereingabe : ", "A")
...
weiterer Code ...
...
' text in Kopfzeile Spalte M schreiben
Range("m1").Select
ActiveCell.FormulaR1C1 = "Artikeltext"
' x Text in Kopfzeile Spalte N schreiben
Range("n1").Select
ActiveCell.FormulaR1C1 = " x " & Text
' Spalte N mit x Text füllen
Range("n1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
' Menge x Text in M2 schreiben
Range("m2").Select
ActiveCell.FormulaR1C1 = "=RC[-4]&RC[1]"
' Spalte M mit Menge x Text füllen
Range("m2").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
' Spalte M in Werte wandeln
Columns("M:M").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
' Spalte N löschen
Columns("N:N").Select
Selection.Delete Shift:=xlToLeft
...
Ich wollte aber wissen, wie das auf einen Wisch geht.
Gruß jdeen
Ich kann Dir dabei nicht helfen, weil ich mir das nicht richtig vorstellen kann.
Allein das Belegen von 65000 Zellen ist für mich unlogisch.
Aber im Internet gibt es bestimmt Hilfen dazu.
Hallo Peterson,
wenn ich eine Datei mit 65000 Datenzeilen habe,
sollen auch alle bedient werden. Ist doch logo, oder ?
Aber um das geht`s doch gar nicht.
Ich wollte doch nur die Syntax für das Verknüpfen
einer Variable mit einem Zellinhalt in Form einer
auf weitere Zellen kopierbaren Formel.
Im Internet habe ich leider diese Konstellation nicht gefunden.
Es muß aber gehen, wir fliegen auch auf den Mond.
Gruß jdeen
Sicherlich geht das.
Aber was Du da machst, ist nicht das Verknüpfen einer Variablen mit einem Zelleninhalt, sondern das Verknüpfen einer Variablen mit der Adresse einer Zelle.
Um den Inhalt einer Zelle zu bekommen, mußt Du die Zelle auslesen.
In meinem Beispiel habe ich Dir doch gezeigt, wie ich mit einem Makro in ein Zelle einen Adressbereich eingefügt habe und eine Formel eingetragen habe.
Mach das so:
Dim Text As String
Text = InputBox("Text", "Eingabe", "Artikelname")
Cells(2, 6) = Cells(2, 5) & " x " & Text
Mußt Du halt mit einer Schleife arbeiten.
OK.
Hab's kapiert.
Lieber wäre es mir, die Formel als Ergebnis zu erhalten.
Dann kann nachträglich die Menge verändert werden und das Ergebnis :
"2 x Dichtung" würde dann automatisch z.B. "5 x Dichtung" lauten.
gruß jdeen
Ich habe mal ein wenig rumgespielt.
ActiveCell.FormulaR1C1 = "=RC[-1] & "" x "" & ""Artikel"" "
Guten Morgen,
hab ich auch schon probiert.
Bringt mir den Variablen-Namen,
leider nicht den Inhalt.
Hab's mit dieser Hilfsspalte gelöst, die ich nachher wieder lösche.
Funktioniert, zufrieden bin ich nicht ;)
Gruß jdeen
Das Problem liegt darin, daß der Befehl eine Formel in eine Zelle schreibt.
Die Variable "Text" ist aber der ExcelSheet nicht bekannt. Daher die Fehlermeldung #WERT!
Dort muß was stehen, was es im Tabellenblatt gibt.
Wie Du es schon selbst rausgefunden hast, den Artikel irgendwo hinschreiben, dann kann die Formel das übernehmen.
Ich würde Dir folgendes vorschlagen:
Gib irgendeiner Zelle außerhalb des sichtbaren Bereiches einen Namen. Dort plazierst Du dann Deine Artikelbezeichnung. Dort kann dann die Formel zugreifen.
Genau so hab ich nun das Ganze umgangen.
Wenn die "Menge" etc. OK ist, in Werte wandeln
- manche Druckprogramme lieben keine Formeln -
und die Hilfszellen löschen.
Gruß jdeen
Ich habe noch nie gehört, daß beim Audruck einer Excel-Tabelle oder beim Zugriff auf die Daten Formeln gedruckt werden.
Es wird bei der Übergabe immer nur der "errechnete" Inhalt der Zelle bereitgestellt.
Wenn Du den Inhalt der Hilfszellen nicht löschen magst, nimmst Du halt weiße Schrift.
Beim eventuellen Drucken der Tabelle mußt Du halt den Druckbereich festlegen.
Hallo Peterson,
melde mich nochmal zum Thema Drucken:
Wenn ich Excel-Tabellen als Datenquelle für einen Serienbrief verwende, gibt es Programme, die mit einer Formel im Feld nichts anfangen können, d.h. sie rechnen nicht und bringen im (besten Fall) Fehlermeldungen. Deshalb muß man zuerst die Formel in Werte wandeln. Ist einfach sicherer.