Ich denke, wenn jemand das eine Problem lösen kann, kann er sicher auch das andere lösen :)
1. Ich habe für jedes Tabellenblatt in meiner Excel-Datei einen Code in VBA programmiert mit dem nach einer Tabellenblattänderung die Bereichskennzeichnung aktulalisiert wird:
Dim zei As Long, zei1 As Long, Spalte As Long, NameBereich As String, BereichNeu As String
Private Sub Worksheet_Change(ByVal Target As Range)
NameBereich = "wl_einteilung"
If Target.Row > Range(NameBereich).Row And Target.Column >= Range(NameBereich).Column And _
Target.Column
Sub BereichNameAendern(NameBereich)zei = 0
For Spalte = 1 To Range(NameBereich).Columns.Count
Range(Cells(Range(NameBereich).Row + Range(NameBereich).Rows.Count, Range(NameBereich).Column + Spalte - 1).Address).Select
Do Until ActiveCell.Row = 65536
Selection.End(xlDown).Select
Loop
Selection.End(xlUp).Select
zei1 = ActiveCell.Row
If zei1 > zei Then zei = zei1
Next Spalte
BereichNeu = "=" & ActiveSheet.Name & "!R" & Range(NameBereich).Row & "C" & Range(NameBereich).Column
BereichNeu = BereichNeu & ":R" & zei & "C" & Range(NameBereich).Column + Range(NameBereich).Columns.Count - 1
ActiveWorkbook.Names.Add Name:=NameBereich, RefersToR1C1:=BereichNeu
End Sub Ich habe einen anderen Button, der mit Daten aus einer DB aktualisiert wenn ich den nun anklicke kommt ein Fehler in folgender Zeile mit der Range/Select- Methode
Range(Cells(Range(NameBereich).Row + Range(NameBereich).Rows.Count, Range(NameBereich).Column + Spalte - 1).Address).Select
Wenn ich nun das debuggen wieder ausstelle, VBA schließe und den Button nochmals klicke klappt alles.
Gibt es eine Möglichkeit diese Zeile irgendwie anders zu schreiben?
2. Der Button von dem ich eben gesproche habe holt sich Daten aus einer Access DB, die zwar immer auf dem gleichen Laufwerk liegt aber unterschiedliche Laufwerksbuchstaben haben kann.
Meine Formel:
ActiveWorkbook.RefreshAll
Ich könnte ja den Laufwerksbuchstaben durch eine Inputbox manuell eingeben lassen, aber wie baue ich das dann in die Formel mit dem Pfad?
In der Datenabfrage steht:
Provider=Microsoft.Jet.OLEDB.4.0;Passwort="";User ID=Admin;Data
Source=W:\.....\(..).mdb;Mode=ReadWrite;Extended Properties="";Jet OLEDB:System
database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database
Passwort=12345;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking
Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Tansactions=1;
Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet
OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
Ich würde jetzt also den Buchstaben zb in der Variablen strLaufwerk speichern.
Wie kann ich das nun einbauen vor "ActiveWorkbook.Refresh"?
Wäre sehr dankbar für eure Hilfe