Ich brauche Hilfe für ein makro

ich möchte die Zellen A1 bis C10 aus einer geöffneten Exceldatei auslesen, aber nicht als Range sondern jede Zelle für sich. dann sollen die Inhalte der Zellen auf Wunsch wieder ausgegeben werden.

wenn das mit einem Excelmakro nicht geht, bitte andere lösungen vorschlagen,danke

ZellenInhaltA1 = Range(„A1“).Value

ZellenInhaltB1 = Range(„B1“).Value

ZellenInhaltC1 = Range(„C1“).Value

AppActivate „micro1“, Wait:=True

jetzt soll z.b. das was in zelle a1 steht eingefügt

sendkey tab

jetzt soll das was in zelle a2 steht eingfügt werden

ich möchte die Zellen A1 bis C10 aus einer geöffneten
Exceldatei auslesen, aber nicht als Range sondern jede Zelle
für sich. dann sollen die Inhalte der Zellen auf Wunsch wieder
ausgegeben werden.

Hallo Grußloser,

mir unklar was du willst. Beschreibe bitte genauer.
Willst du A1:C10 von einem Blatt in ein anderes kopieren?
Was bedeutet nicht als Range einlesen?

Gruß
Reinhard

Hallo Grußloser,

mir unklar was du willst. Beschreibe bitte genauer.
Willst du A1:C10 von einem Blatt in ein anderes kopieren?
Was bedeutet nicht als Range einlesen?

Gruß
Reinhard

sorry war schon spät, als ich das abgeschickt, was ich eigentlich noch gar nicht wollte, weil ich nicht fertig war.

ich möchte nur die zellen einzeln auslesen um dann nach bedarf, die eine oder andere wieder auszulesen und das soll ausserhalb von excel sein.
mit app.activate geht das auch. ich springe dann in ein anderes fenster. dort soll dann der befehl kommen zellinhalt a1 einfügen

Sub Makro2()

Dim ZellenInhaltA1 As String
ZellenInhaltA1 = Range(„A1“).Value

Dim ZellenInhaltB1 As String
ZellenInhalt = Range(„B1“).Value

Dim ZellenInhaltC1 As String
ZellenInhalt = Range(„C1“).Value

AppActivate „Google“, Wait:=True

'jetzt soll der zellinhalt von a1 einglesen werden
'und dafür brauche ich den befehl
‚oder geht das mit dim nicht‘
End Sub

Also wenn nicht range, dann nimmst du cells

Dim IntZeile As Integer

For IntZeile = 1 To 10

If Cells(IntZeile, 1) = "Sonntag" Then

Cells(IntZeile, 1).Interior.ColorIndex = 6

End If

Next

wenn du dann noch die ,1 durch eine Reihen variable ersetzt und aussen eine for schleife mit dem zähler mahst, dann hast du reihe und zeile pro Zelle :smile:

Zeile Spalte als Integer oder Long deklarieren
Hallo Lae,

Also wenn nicht range, dann nimmst du cells

mir noch sehr unklar warum „kein Range“ gelten soll, das weiß wohl nur der Anfrager.

Dim IntZeile As Integer

Warum ich dir schreibe sind zwei Gründe.

Integer geht nur bis 32xxx, also Fehler wenn mehr Zeilen.
Cells(Zeile,Spalte) wandelt die Werete für Zeile und Spalte sowieso in Longwerte um.
Die Zeit die es braucht um Integer in Long zu wandeln kannste dir sparen. Logisch, bei kleinen Datenmengen merkste davon nix aber bei 50 Mio Zellen sieht das anders aus…

Außerdem finde ich es für mich viel einfacher, Zeilen UND Spalten IMMER als Long zu deklariern, einfach zu merken und umzusetzen.

Gruß
Reinhard

gut zu wissen, aber ich würd niemals excel nehmen zum arbeiten ich nehme datenbanken .

Das war irgentwo herauskopiert :smile:
Und seine Angaben waren keine grossen anzahlen an Zellen, die vorgabe lag irgendwo bei A10 bis E23 , das sollte also nicht sein problem werden :smile:

OT^2: Zeile Spalte als Integer oder Long deklarier
von wegen mit kanonen auf spatzen schiessen :smile:

antwort
Hallo
genau davor habe ich angst gehabt.
jetzt werden hier sachen gepostet, wo ich überhaupt nicht von verstehe und sehe keine antwort auf meine frage, zumindest erkenne ich keine.

ich möchte doch nur wissen wie ich 30 zellen auslesen kann und dann jede einzelne auf wunsch irgendwo und irgendwann wieder einfügen
statt 30 mal copy und paste mit hand zu tätigen

Hallo Lae,

gut zu wissen, aber ich würd niemals excel nehmen zum arbeiten
ich nehme datenbanken .

das liegt ja wohl daran was man tun möchte.
Hätte ich das Problem eine Datenbank aufzubauen, zu pflegen usw. so würde ich Excel nehmen.
Denn ich habe nicht die geringste Ahnung von Access, SQL oder waqs es noch so gibt.

Und ich traue mir inzwischen schon zu jedwede Funktionalität eines datenbank-Programmes in Excel nachzubilden.
Logisch wäre das zigmal einfach gleich ein datenbankprogramm zu benutzen aber ich hab da Null Bock mich da einzulesen o.ä.

Btw. Kennst du evtl. F&A, auf Englisch Q&A? (frage und Antwort)
Das Konzept fand ich damals Klasse.
Das Programm war lernfähig und hatte schon eigebaute Dinge die es verstand.

Konkret hieß das du exakt so schreibst so wie es hier steht:

„Zeige mir alle Vertreter in München die mehr als 50.000 Umsatz haben und länger als 3 Jahre in der Firma sind.“

Was „Zeige“ und „mir“ bedeutet war dem Programm von Haus aus bekannt.
Evtl. „Firma“ nicht aber das konnte man dem Programm beibringen.
Also dem Programm beibringen was „zeige“, „liste auf“ „drucke aus“ „druck mir mal“ u.v.m. bedeutet.

Den Ansatz dieses F&As fand ich Klasse.

Das war irgentwo herauskopiert :smile:

Ja, hab mich schon gewundert warum du da Zellen färbst. :smile:

Und seine Angaben waren keine grossen anzahlen an Zellen, die
vorgabe lag irgendwo bei A10 bis E23 , das sollte also nicht
sein problem werden :smile:

„Seine Angaben“ sind m.E. sehr dürftig, was er genau will weiß ich immer noch nicht dazu das AppActivate und kein Range…

Gruß
Reinhard

ich möchte doch nur wissen wie ich 30 zellen auslesen kann und
dann jede einzelne auf wunsch irgendwo und irgendwann wieder
einfügen
statt 30 mal copy und paste mit hand zu tätigen

hallo Jo,

keine Panik, kriegen wir schon hin.
Bzw. du hättest schon Lösungsansätze von mir wenn ich besser verstehen würde was du genau willst.

Also beantworte bitte mal die Nachfragen, z.B. warum keinRange usw.

Du sagst du willst da einen Bereich einlesen und dann „später“ mal irgendwo einfügen.
Während der Laufzeit eines makros ist das kein Prolem, da wird das eingelesn und irgendwo hingeschrieben.

Wenn „später“ aber bedeutet dies geschieht durch ein anderes makro was dann irgendwann später gestartet wird so muß man im ersten Makro die daten irgendwo/irgendwie zwischenbunkern damit es klappt.
Was also liegt bei dir vor?

Gruß
Reinhard

huhu
ich versuche mich schon so gut wie möglich zu äussern.
natürlich soll das innerhalb des makros passieren. deshalb hatte ich das makro doch auch mit in meine antwort kopiert. hatte gehofft das es dann ersichtlicher wird was ich möchte.

Ich versuche es mal anders.
Wir nehmen jetzt mal, das in den Zellen von A1 bis B2 folgendes steht.

A1 enthält den Vornamen
B1 enthält den Nachnamen
C1 enthält den Wohnort
A2 enthält die Postleitzahl

ich möchte jetzt diese Inhalte aus der aktiven Excel zelle auslesen,
das hatte ich gedacht würde mit Dim gehen.

Dann möchte ich mit dem App.activate befehl in ein anderes Fenster springen, nennen wir es micro1.

Um es zu verdeutlichen(ich hoffe das es jetzt zu verstehen ist)
dieses Fenster sieht aus wie ein Anmeldeformular.

wenn ich mit app.activate in dieses fenster gewechselt habe, steht der cursor schon auf dem 1. eingabefeld. jetzt soll er das was in a1 steht einfügen.
Dann per sendkeys eine Tab machen,um ins nächste feld zu springen.
dann soll das was in A2 steht eingefügt werden. usw usw.

Meine Fragen sind nun.

  1. kann ich diese zellen so mit dim auslesen?
  2. wenn nein, mit welchen befehl geht es?
  3. und wie kann ich sie dann an gewünschter stelle im makro einfügen?

Sub Makro2()

Dim ZellenInhaltA1 As String
ZellenInhaltA1 = Range(„A1“).Value

Dim ZellenInhaltB1 As String
ZellenInhaltB1 = Range(„B1“).Value

Dim ZellenInhaltC1 As String
ZellenInhaltC1 = Range(„C1“).Value

Dim ZellenInhaltA2 As String
ZellenInhaltA2 = Range(„A2“).Value

Dim ZellenInhaltB2 As String
ZellenInhaltB2 = Range(„B2“).Value

AppActivate „Micro1“, Wait:=True

'einfügen von inhalt Zelle A1
'tab per sendkeys
'einfügen von inhalt zelle A2
'usw,usw

End Sub

Hallo Jo,

ich versuche mich schon so gut wie möglich zu äussern.

klingt gut, arbeite daran.

natürlich soll das innerhalb des makros passieren.

Tschuldigung, hab keine Glaskugel.

deshalb
hatte ich das makro doch auch mit in meine antwort kopiert.
hatte gehofft das es dann ersichtlicher wird was ich möchte.

Hat bei mir versagt.

das hatte ich gedacht würde mit Dim gehen.

Mit Dim deklarierst bzw. definierst du Variablennamen, Werte zuweisen kannste damit nicht.

Probiere mal dieses:

Sub tt()
Dim Ber As Variant
With Workbooks("DeineMappe.xls").Worksheets("Tabelle1")
 Ber = .Range("A1:C10")
 MsgBox Ber(7, 2) 'B7
End With
End Sub

Und beantworte bitte mal meine nachfragen was du gegen Range hast!

Dann möchte ich mit dem App.activate befehl in ein anderes
Fenster springen, nennen wir es micro1.

Was willst du mit AppActivate und dann mit sendkeys?

Willst du das was du in z.B. meiner Sub in Ber eingelesn hast in ein Blatt einer anderen Mappe reinschreiben, dann brauchst du den Kram wie sendkeys nicht.

dieses Fenster sieht aus wie ein Anmeldeformular.

Du verwirrst mich, läuft in diesem Fenster Excel?

Gruß
Reinhard

huhu,

das sieht ja schon sehr gut aus.

jetzt muss der wert nicht als msgbox ausgegeben werden, sondern dort wo der cursor blinkt.
Dann hättest du meine problem, welches ich schon seit 10tagen zu googeln versuche gelöst

das sieht ja schon sehr gut aus.
jetzt muss der wert nicht als msgbox ausgegeben werden,
sondern dort wo der cursor blinkt.
Dann hättest du meine problem, welches ich schon seit 10tagen
zu googeln versuche gelöst

Hallo Jo,

ich muß raten was du genau willst :frowning:

Option Explicit

Sub tt()
Dim Ber As Variant
With Workbooks("DeineMappe.xls").Worksheets("Tabelle1")
 Ber = .Range("A1:C10")
 ActiveCell.Value = Ber(7, 2) 'B7
End With
End Sub

Sub tt2()
Dim Ber As Variant
With Workbooks("DeineMappe.xls").Worksheets("Tabelle1")
 .Range("A1:C10").Copy Destination:=ActiveCell
End With
End Sub

Gruß
Reinhard

Lieber Reinhard,

warum denn raten?
ich hatte doch ganz ausführlich geschrieben was ich möchte.

Bitte lese es noch mal

warum denn raten?
ich hatte doch ganz ausführlich geschrieben was ich möchte.

Bitte lese es noch mal

Hallo Jo,

okay, das werde ich tun.

Was ist mit der Rückmeldung zu den beiden makros von eben?

Gruß
Reinhard

hi,
das kopiert ja innerhalb der exceldatei. das ist ja leider nicht das was ich brauche.

das kopiert ja innerhalb der exceldatei. das ist ja leider
nicht das was ich brauche.

Hallo Jo,

zugegeben, habe bislang nicht den Thread nachgelsen, aber die einzige Angabe wohin kopiert werden soll ist m.E. „da wo der Curser blinkt“.
Wo genau blinkt er denn?
Und soll an diese Stelle der gesamte kopierte bereich eingefügt werden oder nur eine Zelle daraus?
Mir nicht erinnerlich daß du dich dazu geäußerst hast.

Gruß
Reinhard