Ansicht:   

#444345 Excel VBA Laufzeitfehler 91 (Objektvariable oder With-Blockvariable... (pc.sw.office)

verfaßt von manes zur Homepage von manes, Köln, 10.02.2021, 22:47:20

Hallo
Kam mir doch so bekannt vor. Ist jetzt ein Jahr her!

Mir sind zwei Dinge aufgefallen:

1. Ich hatte damals schon dargestellt, dass das ständige Aktivieren unnötig ist und das ganze unübersichtlich macht. Jetzt hast Du es doch wieder angewendet.

2. Wenn ich das richtig verstehe, wird jeweils von einer lokalen Excel-Datei gestartet, um von einer Datei auf dem Server auf eine andere Datei auf dem Server zu kopieren. Wenn Du das so löst, muss gewährleistet sein, dass jede dieser lokalen Excel-Dateien auf den jeweiligen PCs bezgl. des Makrocodes absolut identisch ist. Ist das der Fall?
Alternative: Excel-Datei, die den Kopiervorgang steuert, ebenfalls auf den Server legen und dann von den einzelnen PCs dort aufrufen.
Oder den Kopiercode in eine der beiden Dateien integrieren und dort aufrufen.

Besteht das Problem denn überhaupt noch?

FFPX
Manes

> > Greifen die Rechner allesamt auf dieselben Excel-Dateien auf dem Server
> zu?
> >
> > Wenn das jeweils separat erfolgt, als was ist denn wsh_z deklariert?
>
> Hallo,
>
> sorry das ich mich jetzt erst zurück melde.
>
> Ja, alle greifen auf die gleichen Dateien auf dem Server zu. Teilweise
> haben die Rechner Excel 16 / 19 oder 365.
>
> Das ist der gesamte Code:
>
>


> Sub PayPalAufbereitungDatenKopieren()
> 
> Workbooks.Open "\\SERVER-PC\SrvDaten\Buchhaltung\2021\PayPal
> Berechnen.xlsm"
> 
> Workbooks("PayPal Berechnen.xlsm").Activate
> 
> Worksheets("PayPal").Activate
> 
> Dim letzten As Long
> 
> 'Prüfen ob Daten eingetragen sind und dann ggf. löschen oder
> Fehlermeldung ausgeben'
> 
> If Range("A11").Value = "" Then
> Else
> letzten = Range("A65536").End(xlUp).Row
> Range("A11:N" & letzten).Clear
> End If
> 
> 'Sicher gehen, dass die richtige Mappe geöffnet und aktiviert ist'
> 
> Workbooks.Open "\\SERVER-PC\SrvDaten\Buchhaltung\2021\PayPal
> Aufbereitung.xlsm"
> 
> Workbooks("PayPal Aufbereitung.xlsm").Activate
> 
> Dim wsh_q As Worksheet
> Dim wsh_z As Worksheet
> Dim var_q As Variant
> Dim var_z As Variant
> Dim int_x As Integer
> Dim str_r As String
> Dim str_q As String
> Dim str_z As String
> Dim letzte As Long
> 
> 'Festlegen aus welchem Tabellenblatt welche Daten wohin verschoben werden
> soll'
> 
> Set wsh_q = ActiveWorkbook.Worksheets("Tabelle1")
> Set wsh_z = Workbooks.Open(ActiveWorkbook.Path & "\PayPal
> Berechnen.xlsm").Worksheets("PayPal")
> var_q = Split("c,d,e,f", ",")
> var_z = Split("a,k,j,l", ",")
> letzte = wsh_q.Range("A65536").End(xlUp).Row
> str_r = "#1:#" & letzte
> 
> 'Durchlauf bis alle Spalten durchlaufen sind'
> 
> For int_x = 0 To UBound(var_q)
> str_q = Replace(str_r, "#", var_q(int_x))
> str_z = Replace(str_r, "#", var_z(int_x))
> wsh_q.Range(str_q).Copy Destination:=wsh_z.Range(str_z).Offset(10)
> Next
> End Sub
> 

--
Also wenn ich ehrlich sein sollte, müsste ich lügen!

 

gesamter Thread:

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz