Avatar billede Nervatos Seniormester
01. oktober 2017 - 17:03 Der er 15 kommentarer og
1 løsning

Slette kæder

Hej alle

Jeg har det problem, at når mit excel åbner, får jeg en fejl med en fil som er kædet. Denne fil bliver slettet så snart den kommer over i det rigtige excel ark, derefter skulle den også gerne slette denne kæde i VBA.
Jeg ville gerne undgå denne fejlmeddelelse.

Jeg har forsøgt lidt forskelligt fra nettet, men det giver bagslag - desværre.

Public Sub DC()
For i = 1 To ActiveWorkbook.Connections.Count
If ActiveWorkbook.Connections.Count = 0 Then Exit Sub
ActiveWorkbook.Connections.Item(i).Delete
i = i - 1
Next i
End Sub

Giver denne fejl:
Compile error: Variable not defined

Det er "Public Sub DC()" som får fejlen.

Er der nogen, som kan hjælpe med at få slettet alle kæder i excel ved opstart.

Jeg benytter mig naturligvis med:
Private Sub Workbook_Open()
DC
End Sub

God aften!
Avatar billede Nervatos Seniormester
01. oktober 2017 - 18:31 #1
Har også prøvet denne:

Sub BreakLinks()
On Error GoTo MyEnd
Set wb = Application.ActiveWorkbook
If Not IsEmpty(wb.LinkSources(xlExcelLinks)) Then
    For Each link In wb.LinkSources(xlExcelLinks)
        wb.BreakLink link, xlLinkTypeExcelLinks
    Next link
End If
On Error GoTo 0
MyEnd:
End Sub

Der får jeg samme fejl, bare ved  For Each link In wb.LinkSources(xlExcelLinks), "link" efter Each,
Avatar billede ebea Ekspert
01. oktober 2017 - 19:10 #2
Hvad hvis du går op i "Data" og vælger "Rediger kæder" og så vælger at data link skal pege på den fil du har åben! Derved bryder du linket, og får læst data fra den fil som du vælger at læse data fra (den åbne fil).
Avatar billede Nervatos Seniormester
01. oktober 2017 - 19:23 #3
Hej ebea

Det er fordi, jeg vil have excel til at opdatere fra en anden fil hvis den eksistere. Da denne skal bruges som opdatering.

Al med opdatering osv. virker, men den bliver automatisk kædet sammen. Det ønsker jeg at fjerne igen, efter den har udført sin opgave.
For når jeg har opdateret mit excel ark, når den åbner og den er færdig bliver opdateringsfilen slettet igen. Starter jeg excel op igen uden den fil, får jeg fejl. Denne fejl vil jeg gerne have væk, selvom jeg godt kan skrive fortsæt.
Derfor ville det være fedt, hvis VBA kunne gøre dette automatisk efter den har fjernet filen igen.

Håber det giver mening.
Avatar billede Dan Elgaard Ekspert
01. oktober 2017 - 19:33 #4
Du får fejlene i begge dine makroer, fordi du ikke har erklæret dine variabler.

Prøv, at slette kodelinjen, 'Option Explicit' i toppen af dit kodemodul.

Jeg tror forøvrigt også, at du vil få fejl i den første makro, da man altid skal løbe baglæns, når man sletter...

...din tæller bør i stedet hedde:

For i = ActiveWorkbook.Connections.Count To 1 Step -1

I den samme makro bør du også indsætte: On Error Resume Next
...som den allrførste linje i tilfælde af, at der enten ikke er nogen links, at slette, eller, hvis links er beskyttet mod sletning.
Avatar billede ebea Ekspert
01. oktober 2017 - 19:37 #5
#3  -  Har du så prøvet, at gå ind i "data" og under "Rediger kæder", og slå funktionen fra, om at få en meddelelse når Excel starter op. Findes så vidt jeg husker, i en lille knap menu (kan ikke lige se det, da jeg mangler en linked fil med manglende data, for at se specifikt) ;-)
Avatar billede Nervatos Seniormester
01. oktober 2017 - 19:43 #6
#4 >
Public Sub DC()
On Error Resume Next
For i = ActiveWorkbook.Connections.Count To 1 Step -1
If ActiveWorkbook.Connections.Count = 0 Then Exit Sub
ActiveWorkbook.Connections.Item(i).Delete
i = i - 1
Next i
End Sub

Den fjerner desværre stadig ikke kæden og har også fjernet Option Explicit, uden held.

#5 >
Har sat den til, "vis ikke advarslen, og opdater ikke automatiske kæder". Den del driller nok også.
Avatar billede Dan Elgaard Ekspert
01. oktober 2017 - 19:54 #7
Har du også prøvet, at fjerne 'Option Explicit' ved din makro nummer?
Avatar billede ebea Ekspert
01. oktober 2017 - 20:00 #8
#6  -  Der er også muligheden, at slå det fra i indstillinger, og vælg "Avanceret" og så nede under "Generelt" fjern Flueben fra "Spørg om kæder skal opdateres automatisk".
Avatar billede Nervatos Seniormester
01. oktober 2017 - 20:03 #9
#7 >
Den er fjernet fra toppen i Denne_projektmappe
Avatar billede Dan Elgaard Ekspert
01. oktober 2017 - 20:11 #10
#9: Option Explicit skal fjernes fra toppen af det modul, hvor makroen ligger...
Avatar billede Nervatos Seniormester
01. oktober 2017 - 20:14 #11
#10 >
Den er slet ikke på nogle sider, den var kun i Denne_projektmappe og den er fjernet nu.
Avatar billede Dan Elgaard Ekspert
01. oktober 2017 - 20:16 #12
#11: Så burde du ikke få 'Variable not defined' fejl længere...
Avatar billede Nervatos Seniormester
01. oktober 2017 - 20:17 #13
Gør den heller ikke, men den fjerner heller ikke kæden.
Avatar billede Dan Elgaard Ekspert
01. oktober 2017 - 20:22 #14
#13: Ahhhh, så er det jo et nyt problem  :-)

Okay - så skal vi have fundet ud af, hvilke type links det er, og hvor de ligger?

Et alternativ kunne for øvrigt være:
http://www.manville.org.uk/software/findlink.htm
Avatar billede Nervatos Seniormester
02. oktober 2017 - 19:10 #15
#14 >

Efter jeg satte Dim i as Long på, så kørte det igennem som det skulle.
Well, smid et svar så vi kan få lukket denne. Tak for din tid :)
Avatar billede Dan Elgaard Ekspert
03. oktober 2017 - 07:44 #16
Jeg tror, at alle indlæg er at opfatte som svar - du skal blot markere, hvilket du bedst kunne bruge...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester