• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

foutmelding

Status
Niet open voor verdere reacties.

westra77

Gebruiker
Lid geworden
2 mrt 2007
Berichten
149
hallo

bij een klant van mij, krijg ik bij het uitvoeren van de macro een foutmelding.
Verschillende klanten werken al met het bestand en de foutmelding is nog niet eerder verschenen.Hieronder het gedeelte van de macro waar de foutmelding verschijnt.
heeft iemand een verklaring en/of oplossing
alvast bedankt


Code:
If Range("a112") = "" Then
    ActiveSheet.Shapes("afbeelding 538").Visible = False
    ActiveSheet.PageSetup.PrintArea = ("a59:j86")
    Else
  [COLOR="Red"][SIZE="2"]  ActiveSheet.Shapes("afbeelding 538").Visible = True[/SIZE][/COLOR]    
ActiveSheet.PageSetup.PrintArea = ("a59:j116")

    End If
 
Blijkbaar bestaat de afbeelding niet (meer).

Met vriendelijke groet,


Roncancio
 
deze afbeelding bestaat wel. Ik heb het gebruikte bestand naar mijn eigen computer gemaild. Op mijn eigen computer krijg ik geen foutmelding. Indien de afbeelding niet meer bestond, zou ik thuis deze foutmelding ook moeten krijgen?
 
Vermijd in VBA Select en Activate; dus ook activeworkbook en activesheet
Verwijs met naam of index naar een object
De haakjes bij ("a59:j86") zullen ook niet helpen.

Code:
If sheets("voorbeeld").Range("a112") = "" Then
    sheets("voorbeeld").Shapes("afbeelding 538").Visible = False
    sheets("voorbeeld").PageSetup.PrintArea = ("a59:j86")
    Else
    sheets("voorbeeld").Shapes("afbeelding 538").Visible = True    
    sheets("voorbeeld").PageSetup.PrintArea = ("a59:j116")
End If
of in 1 regel
Code:
With sheets("voorbeeld")
   if .[A112]="" then .pagesetup.printarea=[A59:J86].offset(iif(.shapes("afbeelding 538").visible,30,0)).address
End with
 
Welke Excel versies worden gebruikt? Vooral, bij welke versie krijg je een foutmelding en welke niet?

Mijn gok: Jijzelf hebt een NL versie en de versie waar de fout in voorkomt is niet NL (ENG bv.). Daar zal de naam niet "afbeelding 538" zijn maar "picture 538" ofzo. Verander de naam van die shape eens handmatig naar bv. "TestNaam" en pas ook je code aan. Krijg je dan nog steeds die foutmelding bij de andere gebruikers? Een andere mogelijkheid is de shape niet aanroepen met zijn naam, maar zijn indexnummer.
 
Laatst bewerkt:
mischien een domme vraag, maar hoe achterhaal ik het index nummer?
 
Vanaf een PC waar je code wel werkt kan je deze code gebruiken:

Code:
Sub test()
Dim i As Long
For i = 1 To Sheets("voorbeeld").Shapes.Count
    If Sheets("voorbeeld").Shapes(i).Name = "Afbeelding 538" Then
    MsgBox i
    End If
Next i
End Sub

het getal in de msgbox is het indexnummer.
 
ik heb onderstaande code gekopieerd en de naam veranderd. Ik krijg echter geen msgbox?
wat doe ik fout.
Mijn klant werkte inderdaad met een Engelse versie


Vanaf een PC waar je code wel werkt kan je deze code gebruiken:

Code:
Sub test()
Dim i As Long
For i = 1 To Sheets("voorbeeld").Shapes.Count
    If Sheets("voorbeeld").Shapes(i).Name = "Afbeelding 538" Then
    MsgBox i
    End If
Next i
End Sub

het getal in de msgbox is het indexnummer.
 
Probeer dan even de naam aan te passen naar een zelfgekozen waarde zoals ik ook in die voorgaande post vermeldde (maw niet via het indexnummer werken).
 
mischien vervelend, maar ik kom er nopg steeds niet uit.
ik heb de code gekopieerd zie onderstaand voorbeeld.
toch krijg ik nog steede geen messagebox
waarschijnlijk blijf ik iets fout doen, of ik begrijp je antwoord niet goed genoeg.
Ik ben absoluut geen ster in vba

Code:
Option Explicit

Sub test()
 Dim i As Long
For i = 1 To Sheets("mengopdracht").Shapes.Count
    If Sheets("mengopdracht").Shapes(i).Name = "Afbeelding 539" Then
    MsgBox i
    End If
Next i
End Sub
 
In je eerste post had je het over een afbeelding 538 ipv afbeelding 539. Ook de bladnaam is verschillend. Maar ik neem aan dat dit in jouw laatste post correct is. Gebruik anders eens volgende code. Deze kan meerdere elementen teruggeven, maar ik denk het niet.

Code:
Option Explicit

Sub test()
 Dim i As Long
For i = 1 To Sheets("mengopdracht").Shapes.Count
If InStr(1, Sheets("mengopdracht").Shapes(i).Name, "539", vbTextCompare) > 0 Then    
    MsgBox i
End If
Next i
End Sub

Ik kom er nog eens op terug, maar je kan ook trachten de naam van je afbeelding te wijzigen. In de naam box op je werkblad verander je dan handmatig de naam Afbeelding 539 in bv. testnaam en ook in je code pas je die wijziging dan toe. Normaal moet dat ook lukken.

Je kan ook het bestand even posten, dat werkt altijd makkelijker.
 
werkt nu goed, ik heb alle afbeeldingen omgezet naar index nummers.
en het bestand weer naar mijn klant gemaild.
hopelijk nu geen foutmeldingen meer, ik wil het bestand wel posten, maar het is een onderdeel van een uitgebreidere macro. Ivm informatie die ik graag niet op internet wil plaatsen heb ik het bestand niet gepost. Iik zou hem wel naar je persoonlijk willen sturen.
 
werkt nu goed, ik heb alle afbeeldingen omgezet naar index nummers.
en het bestand weer naar mijn klant gemaild.
hopelijk nu geen foutmeldingen meer, ik wil het bestand wel posten, maar het is een onderdeel van een uitgebreidere macro. Ivm informatie die ik graag niet op internet wil plaatsen heb ik het bestand niet gepost. Iik zou hem wel naar je persoonlijk willen sturen.


Laat maar horen of het probleem nu van de baan is. Moest je toch nog tegen foutmeldingen aanlopen kan je alsnog het bestand mailen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan