VB Code hilfe

Moderator: ModerationP

VB Code hilfe

Beitragvon Gast » 09. Feb 2017, 13:38

Hallo,
ihr(Stuerfuzzi) habt mir gestern so gut geholfen.

wenn ich darf, hier noch eine FRage.

ich möchte gerne die Range A2:A11 von XLsheet1 nach XLsheet 2 kopieren, und zwar immer unten am Schluss anhängen.
In Excel klappt das so, aber von VB aus nicht.
danke für eure Hilfe


Set Bereich = xlsheet1.Range("A2:A11")
Bereich.Copy xlsheet2.Cells(xlsheet2.Rows.Count, 1).End(xlUp).Offset(1, 0)
Zuletzt geändert von shift-del am 09. Feb 2017, 13:43, insgesamt 1-mal geändert.
Grund: Thema nach Excel verschoben
Gast
 

Re: VB Code hilfe

Beitragvon DerHoepp » 09. Feb 2017, 14:06

Hi,

gibts ne Fehlermeldung? Redest du von .Net? Falls ja, Welche Version des VSTO setzt du ein? und wie schaut der restliche Programmcode aus? Insbesondere geht es um die Frage, wie du deine Objektvariablen dimensioniert und instanziert hast.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8898
Registriert: 14. Mai 2013, 11:08

Re: VB Code hilfe

Beitragvon Gast » 09. Feb 2017, 14:40

oh je , das ist ein Programm von ibm(3270). keine Ahnung weche VB Version sich dahinter verbirgt.

Der Fehler lautet "Objekt erfoderflich Bereich Copy

nach dem dem kopieren, sollen die Zellen gelöscht werden, so das der Rest nach oben rutscht und die Schleife wieder von vorne anfangen kann. aber so weit war ich noch nicht.
´Vielleicht ist auch mein Ansatz nicht so gut, bin auch offen für andere Wege.

Dim xlApp
Dim xlSheet1
Dim xlSheet2
Dim xlBook1
Dim Bereich
Dim i
Dim RC

Set xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.Open "C:\Users\USER\Desktop\Auto.xlsm"
Set xlBook1 = xlApp.Workbooks("Auto.xlsm")
Set xlSheet1 = xlBook1.Worksheets("Test")
xlApp.Application.Visible = True

Set RC = xlSheet1.Range("A2")
For i = 10 To 20
autECLSession.autECLPS.SendKeys RC.Offset(i - 10, 0).Value, i, 2
RC.Offset (i - 10, 1).Value = "kopiert"
autECLSession.autECLOIA.WaitForInputReady
Next

Set Bereich = xlsheet1.Range("A2:A11")
Bereich.Copy.xlsheet2.Cells(xlsheet2.Rows.Count, 1).End (xlUp).Offset(1, 0)

Set xlApp = Nothing
Set xlBook1 = Nothing
Set xlSheet1 = Nothing
Set Bereich Nothing

End Sub
Gast
 

Re: VB Code hilfe

Beitragvon Gast » 09. Feb 2017, 14:46

das gehört noch dazu, sorry

Set xlSheet2 = xlBook1.Worksheets("Backup")
Gast
 

Re: VB Code hilfe

Beitragvon Nicolaus » 09. Feb 2017, 16:24

Hm,

wenn das wirklich so wie in deinem letzten Post drinsteht kann es nicht laufen.
Bereich.Copy.xlsheet2.Cells(xlsheet2.Rows.Count, 1).End (xlUp).Offset(1, 0)

da darf kein Punkt sein, sondern ein Leerzeichen.

Gruß
Nic
die Forenhelfer freuen sich über eine Antwort
Benutzeravatar
Nicolaus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4629
Registriert: 02. Feb 2010, 15:52
Wohnort: Rhein Main Gebiet

Re: VB Code hilfe

Beitragvon DerHoepp » 09. Feb 2017, 17:12

Hallo,

da hat der Nicolaus natürlich recht, ich gehe aber mal davon aus, dass die Fehlermeldung beim ersten Post die gleiche war.
Ich glaube trotzdem die Lösung zu haben:
Du darfst nicht die ExcelEigene Konstante xlUp verwenden, sondern musst stattdessen den Wert einsetzen (-4162).

Und nutze doch künftig bitte die Code-Tags, das macht Programmcode lesbarer.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8898
Registriert: 14. Mai 2013, 11:08

Re: VB Code hilfe

Beitragvon Gast » 09. Feb 2017, 18:19

Danke. Werde es morgen früh mal versuchen umzusetzen.
Ich hatte mir auch schon mal überlegt den Excelteil in Excel zu lassen und dann von vb aus die Makros zu starten. Aber ich denke das hin und her ist vielleicht nicht so gut.
Oder was meint ihr?
Gast
 

Re: VB Code hilfe

Beitragvon Gast » 10. Feb 2017, 08:28

Guten Morgen,


zur Info
wenn ich die Range als Range Anspreche dann geht es. Dann lasse ich es so.

Danke für die Unterstützung


Bereich Copy (xlsheet2.Cells(xlsheet2.Rows.Count, 1).End(-4162).Offset(1, 0)) funktioniert nicht
xlsheet1.Range("A2:A11").Copy (xlsheet2.Cells(xlsheet2.Rows.Count, 1).End(-4162).Offset(1, 0)) funktioniert

Diane
Gast
 


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: AntekSerfaus, GMG-CC, Lufti67 und 6 Gäste