Fout 2147352565, de opgegeven dimensie is niet geldig voor het huidige grafiek type

Status
Niet open voor verdere reacties.

LeonieK12

Gebruiker
Lid geworden
9 jan 2013
Berichten
36
Besten,

Ik ben al enige tijd bezig met het maken van een excel formulier en 'database', en krijg nu ineens de foutmelding "Fout 2147352565, de opgegeven dimensie is niet geldig voor het huidige grafiek type". Ik ben al aan het zoeken geweest op internet en in mijn VBA code, maar ik kan niet ontdekken wat ik aangepast heb zodat deze code verschijnt. Hieronder staat de hele tekst en bij het testen van de macro wordt "Application.Goto Sheets(txtJaar.Value).Cells(1)" geel gearceerd. Het kan zijn dat mijn verwijzing naar het pad niet goed is, maar ik heb het idee dat er ergens iets op de achtergrond wel of juist niet meedraait/wordt uitgevoerd, want in het basisbestand was ineens een werklblad "Macro1" toegevoegd (en ik ben me er niet van bewust dat ik het gedaan heb > deze heb ik inmiddels gevonden, 'verkeerde knopcombinatie' ctrl-f11 :o). Daarnaast wil het enkele bestand "AFDELINGSOVERZICHT_CNS.xlsm" ook niet meer openen, ook niet als er geen enkel ander excel bestand geopend is. Wie kan me op weg helpen met de foutopsporing? Alvast bedankt.

Code:
Private Sub cmbInvoerOpslaan_Click()

With Sheets("technische kennis CNS")
    If Range("C2").Value = "" Then
        Range("C2").Value = Me.txtNaam.Value
        Else
        Me.txtNaam.Value = Range("C2").Value
    End If
    
    If Range("E3").Value = "" Then
        Range("E3").Value = Me.cmbFunctieEng.Value
        Else
        Me.cmbFunctieEng.Value = Range("E3").Value
    End If
    
    If Range("C2").Value <> "" Then
        cmbJaarlijkseInvoer.Visible = True
        Else
        cmbJaarlijkseInvoer.Visible = False
    End If
End With
 
'zoeken naar lege cel in rij jaar en deze activeren (WERKT)
Cells.Find(what:="", After:=Range("D2"), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).activate

'invullen van de score (WERKT)
   With Sheets("technische kennis CNS")
        ActiveCell.Offset(0, 0) = Me.txtJaar.Value
        ActiveCell.Offset(1, 0) = Me.cmbFunctieEng.Value
        ActiveCell.Offset(3, 0) = Me.txtAppBowStern.Value
        ActiveCell.Offset(4, 0) = Me.txtStairs.Value
        ActiveCell.Offset(5, 0) = Me.txtMooringAnchoring.Value
        ActiveCell.Offset(6, 0) = Me.txtBulwarksRailling.Value
        ActiveCell.Offset(7, 0) = Me.txtSuperstrMCP.Value
        ActiveCell.Offset(8, 0) = Me.txtSuperstrOutf.Value
        ActiveCell.Offset(9, 0) = Me.txtFoundations.Value
        ActiveCell.Offset(10, 0) = Me.txtHMCP.Value
        ActiveCell.Offset(11, 0) = Me.txtHullOutf.Value
        ActiveCell.Offset(12, 0) = Me.txtWindowsPortholes.Value
        ActiveCell.Offset(15, 0) = Me.txtDoorsHatches.Value
        ActiveCell.Offset(16, 0) = Me.txtTT.Value
        ActiveCell.Offset(17, 0) = Me.txtWCS.Value
        ActiveCell.Offset(18, 0) = Me.txtLSA.Value
        ActiveCell.Offset(19, 0) = Me.txtFoldBalcAccSyst.Value
        ActiveCell.Offset(37, 0) = Me.txtDeckArrLayouts.Value
        ActiveCell.Offset(38, 0) = Me.txtNavLight.Value
        ActiveCell.Offset(39, 0) = Me.txtAntDomRadars.Value
        ActiveCell.Offset(49, 0) = Me.txtFEM.Value
        ActiveCell.Offset(50, 0) = Me.txtLocVibr.Value
        
        'aanpassen waarde true / false naar ja/nee
        ActiveCell.Offset(61).Resize(3) = Application.Transpose(Array(Format(chkAutocad, "Yes/no"), Format(chkCadmatic, "Yes/no"), Format(chkNX, "Yes/no")))
    End With
                  
    'opslaan persoonlijke kenniskaart met naam van werknemer
    Dim BestandsnaamPersKK As String
    Dim Pad As String
    Dim BestandsnaamAfdOverzicht As String
          
    stPad = "G:\04_....\proefversies\CNS\"
    stBestandsnaamPersKK = Sheets("technische kennis CNS").Range("C2").Value
    stBestandsnaamAfdOverzicht = "AFDELINGSOVERZICHT_CNS.xlsm"
    
    ThisWorkbook.SaveAs stPad & stBestandsnaamPersKK, FileFormat:=52
            
    'openen werkboek afdelingsoverzicht kenniskaart CNS 

    Workbooks.Open stPad & stBestandsnaamAfdOverzicht
    
    'activeren juiste sheet, d.w.z. sheet met juiste jaartal     'hier geeft VBeditor een fout bij het uitvoeren van de macro. Het kan zijn dat mijn verwijzing niet goed is, maar ik heb 
    Application.Goto Sheets(txtJaar.Value).Cells(1)
    
    'afdelingsoverzicht kenniskaart CNS wordt niet zichtbaar geopend
    ActiveWindow.Visible = True
            
    'zoeken naar 1e lege cel in afdelingsoverzicht discipline CNS (WERKT)
    Cells.Find(what:="", After:=Range("A2"), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).activate
    
    'invullen waarden uit formulier in afdelingsoverzicht discipline CNS
     With ActiveCell
            ActiveCell.Offset(0, 0) = Me.cmbFunctieEng.Value
            ActiveCell.Offset(0, 1) = Me.txtNaam.Value
            ActiveCell.Offset(0, 2) = Me.txtAppBowStern.Value
            ActiveCell.Offset(0, 3) = Me.txtStairs.Value
            ActiveCell.Offset(0, 4) = Me.txtMooringAnchoring.Value
            ActiveCell.Offset(0, 5) = Me.txtBulwarksRailling.Value
            ActiveCell.Offset(0, 6) = Me.txtSuperstrMCP.Value
            ActiveCell.Offset(0, 7) = Me.txtSuperstrOutf.Value
            ActiveCell.Offset(0, 8) = Me.txtFoundations.Value
            ActiveCell.Offset(0, 9) = Me.txtHMCP.Value
            ActiveCell.Offset(0, 10) = Me.txtHullOutf.Value
            ActiveCell.Offset(0, 11) = Me.txtWindowsPortholes.Value
            ActiveCell.Offset(0, 12) = Me.txtDoorsHatches.Value
            ActiveCell.Offset(0, 13) = Me.txtTT.Value
            ActiveCell.Offset(0, 14) = Me.txtWCS.Value
            ActiveCell.Offset(0, 15) = Me.txtLSA.Value
            ActiveCell.Offset(0, 16) = Me.txtFoldBalcAccSyst.Value
            ActiveCell.Offset(0, 17) = Me.txtDeckArrLayouts.Value
            ActiveCell.Offset(0, 18) = Me.txtNavLight.Value
            ActiveCell.Offset(0, 19) = Me.txtAntDomRadars.Value
            ActiveCell.Offset(0, 20) = Me.txtFEM.Value
            ActiveCell.Offset(0, 21) = Me.txtLocVibr.Value
            
            'aanpassen waarde true / false naar ja/nee
            ActiveCell.Offset(0, 22).Resize(1) = Array(Format(chkAutocad, "Yes/No"))
            ActiveCell.Offset(0, 23).Resize(1) = Array(Format(chkCadmatic, "Yes/No"))
            ActiveCell.Offset(0, 24).Resize(1) = Array(Format(chkNX, "Yes/No"))
   End With
                       
'opslaan afdelingsoverzicht discipline CNS
ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

Private Sub cmbJaarlijkseInvoer_Click()
    
    Workbooks.Close
    Application.Dialogs(1).Show "G:\04_Monodisciplinary\01_Knowledge_Development\Knowledge Management\kennis in kaart\2.under construction\K.I.K. templates under construction\proefversies\CNS\"
    
End Sub

Private Sub cmdAfsluiten_Click()
'opslaan / checken of bestand is opgeslagen
    If MsgBox("invoer is opgeslagen?", vbYesNo + vbQuestion, "afsluiten kenniskaart invoer") = vbYes Then
    ThisWorkbook.Saved = True
    ThisWorkbook.Close
    Application.Quit
    Else
        If MsgBox("invoer opslaan?", vbYesNo + vbQuestion, "opslaan invoer") = vbYes Then
        ActiveWindow.Visible = True
        Else
        '.............
        Application.Quit
        End If
    End If
End Sub
 
Private Sub cmbNieuweInvoer_Click()

Dim wb As Workbook

checkInvoer = MsgBox("ingevoerde gegevens opgeslagen?", vbYesNo + vbInformation)

If checkInvoer = vbYes Then
    On Error Resume Next
        Set wb = Workbooks("LEGE KENNISKAART_CNS.xlsm")
    On Error GoTo 0
        If wb Is Nothing Then
        Set wb = Workbooks.Open("G:\04_Monodisciplinary\01_Knowledge_Development\Knowledge Management\kennis in kaart\2.under construction\K.I.K. templates under construction\proefversies\CNS\LEGE KENNISKAART_CNS.xlsm")
    Else
        wb.activate
    End If

    ElseIf checkInvoer = vbNo Then
        MsgBox "graag invoer opslaan", vbInformation
    End If
      
End If

End Sub

Private Sub UserForm_Initialize()
'als er een naam staat in C2 en een functie in E3 wordt deze in de userform weergegeven
    Me.txtNaam.Value = Range("C2").Value
    Me.cmbFunctieEng.Value = Range("E3").Value
    Me.txtJaar.Value = Year(Now)
    
    If Range("C2").Value = "" Then
        cmbJaarlijkseInvoer.Visible = False
    Else
        cmbJaarlijkseInvoer.Visible = True
    End If
    
    If Range("C2").Value = "" Then
        cmbNieuweInvoer.Visible = True
    Else
        cmbNieuweInvoer.Visible = False
    End If
End Sub
 
Laatst bewerkt:
Kleine testcode geschreven in een bestand met 2 sheets "2013" en "2014".

Code:
Sub test()
Dim strJaar As String
Dim lngJaar As Long

    strJaar = "2013"
    lngJaar = 2014
    
    Application.Goto Sheets(strJaar).Cells(1)
    Application.Goto Sheets(lngJaar).Cells(1)
End Sub

Eerste application geeft geen foutmelding, tweede wel.

Ik zou eens
Code:
Application.Goto Sheets(cstr(txtJaar.Value)).Cells(1)
proberen.
Je weet maar nooit hoe een koe een haas vangt :)


Trouwens die code lijn heeft niets te maken met een grafiek ??!!??
Ben je zeker dat de foutmelding op die lijn komt??
 
terzijde, i.p.v.
Code:
Private Sub UserForm_Initialize()
'als er een naam staat in C2 en een functie in E3 wordt deze in de userform weergegeven
    Me.txtNaam.Value = Range("C2").Value
    Me.cmbFunctieEng.Value = Range("E3").Value
    Me.txtJaar.Value = Year(Now)
    
    If Range("C2").Value = "" Then
        cmbJaarlijkseInvoer.Visible = False
    Else
        cmbJaarlijkseInvoer.Visible = True
    End If
    
    If Range("C2").Value = "" Then
        cmbNieuweInvoer.Visible = True
    Else
        cmbNieuweInvoer.Visible = False
    End If
End Sub
is dit voldoende:
Code:
Private Sub UserForm_Initialize()
    txtNaam.Text = Range("C2").Value
    cmbFunctieEng.Value = Range("E3").Value
    txtJaar.Text = Year(Date)
    
    cmbJaarlijkseInvoer.Visible = txtNaam.Text<>""
    cmbNieuweInvoer.Visible = cmbJaarlijkseInvoer.visible
End Sub
 
Een wat verlate reactie door vakantie, maar de uiteindelijke oplossing voor mijn probleem bleek te liggen in de extensie van het bestand waarnaar verwezen werd. Dat heb ik nu als xlsx opgeslagen en niet als xlsm en het probleem is nu opgelost.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan