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

Sendkey Problem mit Matrixformel

Sendkey Problem mit Matrixformel
30.03.2006 15:36:25
Sylvio
Hallo @all,
ich hab ein Sendkey-Problem
wenn ich folgenden Code ausführe:
sheet = "Personen"
Application.ThisWorkbook.Sheets(sheet).Select
Cells(2, 3).Select
Application.SendKeys ("{F2}")
Application.SendKeys ("^+{Enter}")
Application.SendKeys ("{RIGHT}")
Application.SendKeys ("{F2}")
Application.SendKeys ("^+{Enter}")
Application.SendKeys ("{RIGHT}")
Application.SendKeys ("{F2}")
Application.SendKeys ("^+{Enter}")
Application.SendKeys ("{RIGHT}")
wandelt er mir alle drei Zellen in Matrixformeln um. Das funzt soweit.
Nun möchte ich ein weiteres Sheet umformatieren und hänge den selben Text nur mit einer anderen sheet-Bezeichnung an meinen oben stehenden Code an.
sheet = "Merkmal"
Application.ThisWorkbook.Sheets(sheet).Select
Cells(2, 3).Select
Application.SendKeys ("{F2}")
Application.SendKeys ("^+{Enter}")
Application.SendKeys ("{RIGHT}")
Application.SendKeys ("{F2}")
Application.SendKeys ("^+{Enter}")
Application.SendKeys ("{RIGHT}")
Application.SendKeys ("{F2}")
Application.SendKeys ("^+{Enter}")
Application.SendKeys ("{RIGHT}")
Problem ist er lässt jetzt die Umwandlung des ersten sheets("Personen") aus. Was ist falsch?
Bei einer Schleife tritt genau das selbe Problem auf!
Gruß Sylvio

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sendkey Problem mit Matrixformel
30.03.2006 15:41:54
c0bRa
hio...
probier mal statt:
Application.ThisWorkbook.Sheets(sheet).Select
das hier:
Application.ThisWorkbook.Sheets(sheet).activate

Rückmeldung nicht vergessen...
c0bRa
Zusammengesetzt ergeben die Rechtschreibfehler ein Geheimrezept, wie man aus Wasser Bier machen kann...
AW: Sendkey Problem mit Matrixformel
30.03.2006 15:54:23
Sylvio
Hallo
Application.ThisWorkbook.Sheets(sheet).activate
bringt auch nix, er nimmt immer das lezte sheet und macht dann aber 6x den befehl
und nicht dreimal in dem einen sheet und dreimal in dem anderen sheet wie er sollte.
Gruß Sylvio
Anzeige
Wait Eigenschaft fehlt?
30.03.2006 16:17:39
Sylvio
Hallo @all,
ich hab rausgefunden, das mir die Wait-Eigenschaft fehlt.
wie muss ich es da schreiben?
Application.SendKeys ("{F2}",True) -- so gehts nicht
Gruß Sylvio
AW: Wait Eigenschaft fehlt?
30.03.2006 16:30:20
Reinhard
Hi Silvio,
Application.SendKeys "{F2}", True
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: Wait Eigenschaft fehlt?
30.03.2006 16:39:00
Sylvio
Hallo Reinhard,
danke für die richtige Schreibweise.
Das Problem ist aber damit nicht behoben. Er rattert das makro trotzdem runter ohne alle Sendkey-Befehle abzuwarten.
Gruß Sylvio
Dann halt ohne Sendkeys
30.03.2006 16:58:14
Reinhard
Hi Sylvio,
Option Explicit
Sub tt()
With Worksheets("Tabelle1")
.Range("C2").FormulaArray = .Range("C2").FormulaLocal
.Range("d2").FormulaArray = .Range("d2").FormulaLocal
.Range("e2").FormulaArray = .Range("e2").FormulaLocal
End With
With Worksheets("Tabelle2")
.Range("C2").FormulaArray = .Range("C2").FormulaLocal
.Range("d2").FormulaArray = .Range("d2").FormulaLocal
.Range("e2").FormulaArray = .Range("e2").FormulaLocal
End With
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Dann halt ohne Sendkeys
30.03.2006 17:03:47
Sylvio
Hallo Reinhard,
das gleich Problem wie ich es bst geschrieben hab.
kann FormulaArray nicht verwenden, da mein string zu lang ist &gt255 Zeichen und dann geht FormulaArray nicht mehr VBA bringt nen Fehler. Deshalb der weg über sendkey.
hier mal der string:
=INDEX('F:\70_Excel\herber help\31788 Gabi\Hauptordner\[menü.xls]Matrix_Arzt'!C$1:C$3;KKLEINSTE(WENN($A2&$B2='F:\70_Excel\herber help\31788 Gabi\Hauptordner\[menü.xls]Matrix_Arzt'!$A$1:$A$3&'F:\70_Excel\herber help\31788 Gabi\Hauptordner\[menü.xls]Matrix_Arzt'!$B$1:$B$3;ZEILE($1:$3));SUMME(($A$2:$A2&$B$2:$B2=$A2&$B2)*1));1)
Gruß Sylvio
Anzeige
Nagut, halt wieder mit Sendkeys *g
30.03.2006 17:09:42
Reinhard
Hi Sylvio,
so scheint es zu klappen.
Sub tt()
Application.ThisWorkbook.Sheets("Tabelle1").Activate
Cells(2, 3).Select
Call mache
DoEvents
Application.ThisWorkbook.Sheets("Tabelle2").Activate
Cells(2, 3).Select
Call mache
End Sub
Sub mache()
Application.SendKeys ("{F2}")
Application.SendKeys ("^+{Enter}")
Application.SendKeys ("{RIGHT}")
Application.SendKeys ("{F2}")
Application.SendKeys ("^+{Enter}")
Application.SendKeys ("{RIGHT}")
Application.SendKeys ("{F2}")
Application.SendKeys ("^+{Enter}")
Application.SendKeys ("{RIGHT}")
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Nagut, halt wieder mit Sendkeys *g
30.03.2006 17:14:50
Sylvio
JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa
danke danke Reinhard!!!
DoEvents heißt das Zauberwort. Danke
AW: Warum hier Sendkey ?
30.03.2006 16:47:40
bst
Auch Hallo,
warum machst Du denn nicht sowas ?
cu, Bernd
--
Option Explicit

Sub x()
    Dim i%, arSheets
    
    arSheets = Array("Personen", "Merkmal")
    For i = 0 To 1
        With ThisWorkbook.Worksheets(arSheets(i)).Range("D2:F2")
            .FormulaArray = .Formula
        End With
    Next
End Sub


Anzeige
Das geht nicht
30.03.2006 16:51:19
Sylvio
Hier ist der Haken: .FormulaArray = .Formula
Meine Formula hat mehr als 254 Zeichen und da streikt .FormulaArray ganz klassisch. Deshalb erst Text in die Zelle und nachträglich Sendkey weil dann wieder mehr Zeichen gehen.
Gruß Sylvio
AW: Das geht nicht
30.03.2006 16:53:34
bst
Hmm,
dann verkürze doch einfach die Formel indem Du Namen benutzt ?
cu, Bernd
AW: Das geht nicht
30.03.2006 16:56:58
Sylvio
Hallo Bernd,
wie meinste das?
Hier mal mein String den ich als Formula übergebe:
der wird natürlich aus mehreren variablen so zusammengesetzt.
'=INDEX('F:\Dokumente und Einstellungen\Desktop\Hauptordner\[menü.xls]Matrix_merkmale'!C$1:C$3;KKLEINSTE(WENN($A2&$B2='F:\Dokumente und Einstellungen\Hauptordner\[menü.xls]Matrix_merkmale'!$A$1:$A$3&'F:\Dokumente und Einstellungen\Desktop\Hauptordner\[menü.xls]Matrix_merkmale'!$B$1:$B$3;ZEILE($1:$3));SUMME(($A$2:$A2&$B$2:$B2=$A2&$B2)*1));1)
Gruß Sylvio
Anzeige
AW: Das geht nicht
30.03.2006 17:28:01
bst
Hallo Sylvio,
ich wollte sowas tun:
Names.Add "myTable", "'F:\Dokumente und Einstellungen\Desktop\Hauptordner\[menü.xls]Matrix_merkmale'"
um dann irgendwie mit Indirekt( myTables ...) weiterzumachen.
Das geht wohl hier aber nicht, da Du menü.xls nicht geöffnet hast, oder ?
Sorry, Bernd
OwT: hat sich bereits erledigt
30.03.2006 17:30:21
bst
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige