• 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 na sorteren

Status
Niet open voor verdere reacties.

CygneVoler

Gebruiker
Lid geworden
15 mei 2015
Berichten
234
Hoi Excellers,

Graag roep ik jullie hulp in voor het volgende.
Bijgevoegd document geeft een foutmelding nadat ik 1x succesvol het tabblad "Artikelen" heb laten oplopend sorteren.
De code van het sorteren staat in ThisWorkbook.

Code:
Private Sub Workbook_Open()
         Range("A:L").Select
    ActiveWorkbook.Worksheets("ARTIKELEN").Sort.SortFields.Add Key:= _
        Range("C:C"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
        
    With ActiveWorkbook.Worksheets("ARTIKELEN").Sort
        .Header = xlYes
        .SetRange Range("A:L")
        .Orientation = xlTopToBottom
        .Apply
    End With
 
End Sub

De foutmelding die ik krijg (deze zit ook in het bijgevoegde document) is: "Er zijn problemen aangetroffen in het bestand...bla bla bla. Wilt u dit herstellen: Ja!"

"Verwijderde records: sorteren van het onderdeel /xl/worksheet/sheet3.xml."

Ik begrijp er niets van!

Graag zou ik wat uitleg met een oplossing (indien mogelijk :D) van jullie willen zien/ontvangen

Alvast hartelijk dank voor jullie bijdrage,
 

Bijlagen

  • Forem_Bestel.rar
    92,5 KB · Weergaven: 730
Ik denk dat je daar tegen een bug in de xml structuur van Excel aan loopt. Sla het herstelde document op als .xlsb (Binaire werkmap) en probeer het daarna nog eens.
 
Dit lijkt me voldoende.
Code:
Private Sub Workbook_Open()
 with Sheets("ARTIKELEN")
   .Cells(1).CurrentRegion.Sort .Cells(1, 3), , , , , , , xlYes
 end with
End Sub
 
Misschien dat je dan ook die bug niet tegenkomt :)
 
Harry je bedoelt dat de code die ik gebruik vervangen dient te worden door jouw voorstel?
 
Heel vervelend, maar ik ontdek zojuist het volgende: doordat het bestand te "groot" was om te uploaden heb ik een aantal andere tabbladen verwijderd. De foutmelding zit dus ook niet in het bijgevoegde document volgens mij. Ik moet het dus zoeken in de tabbladen die niet zijn toegevoegd aan dit bericht. Beetje lastig allemaal. Ik ga weer ff puzzelen.
 
Harry ik heb het eens voor de lol geprobeerd :D maar het heeft er verdacht veel van dat het lukt. Maar...prijs de dag niet voor het avond is. Daarmee schieten we wel aardig op overigens. Blijft wel staan dat ik de melding die ik kreeg vreemd vind. Dacht nog even dat het een macro zou zijn die ik eerder heb opgenomen. Ik blijf nadenken en zoeken...
 
Wat ik al zei, er zit een bug in xml opslagstructuur van Excel en ik denk dat je die tegen bent gekomen. De "oplossing" is het document niet meer als Open XML (xlsx, xlsm) op te slaan maar als binaire werkmap (.xlsb)

Dat een andere wijze van het in elkaar steken van een VBA functie om het probleem heen gaat is uiteraard beter :)
 
Hier gaat het al fout:
Code:
Range("C:C")
en hier nog een keer.
Code:
.SetRange Range("A:L")

Het actieve werkblad bij het openen is 'Bestelformulier', terwijl je de range van werkblad 'Artikelen' moet hebben.
 
Bedankt Harry. Ik ga er induiken. Gelukkig heb je een werkende code gegeven die het prima doet.

Ik heb een andere vraag die betrekking heeft op dezelfde file die is toegevoegd aan dit bericht:
Je ziet 3 tabbladen staan. In de praktijk wordt het tabblad "Artikelen" op veryHidden gezet om te voorkomen dat er in "gerommeld" wordt.
Echter loop ik tegen het probleem aan dat, wanneer het blad verborgen is, de userform het bereik niet kan vinden. Is daar een oplossing voor? en...zou je die met me willen delen?

Alvast bedankt voor jullie medewerking.
 
Het blad moet je eerst zichtbaar maken, dan ermee doen wat er moet gebeuren en dan weer verbergen. Als je dat doet terwijl Application.ScreenUpdating False is ziet niemand daar iets van.
 
Dat commando staat er al in Edmoor maar hij blijft "vast lopen". De foutmelding is: "Fout 1004 uitvoering: Methode select van klasse Worksheet is mislukt." Deze regel in wordt daarbij gekleurd weergegeven: Sheets("Artikelen").Select
 
Laat dat document maar eens zien.
 
In userform Invr_artikelen.
Code:
Private Sub cmb_Bewerken_Click()
Frame3.Visible = True
Application.ScreenUpdating = False
With Sheets("Artikelen")
   .Visible = True
  Set ArtCel = .Cells(cmbInvoer.ListIndex + 2, 1)
    For i = 1 To 8
     Me("Label" & i).Caption = .Cells(1, i)
    Next i
  
    For i = 1 To 6
      Me("textbox" & i) = ArtCel.Offset(, i - 1)
    Next i
        TextBox8 = ArtCel.Offset(, 7)
        ComboBox7 = ArtCel.Offset(0, 6).Value
        Cmd_Verwijderen.Visible = True
        cmb_Aanpassen.Visible = True
   .Visible = xlVeryHidden
End With
End Sub

In thisworkbook.
Code:
Private Sub Workbook_Open()
 With Sheets("ARTIKELEN")
   .Visible = True
   .Cells(1).CurrentRegion.Sort .Cells(1, 3), , , , , , , xlYes
   .Visible = xlVeryHidden
 End With
End Sub
 
Diep respect Harry. :thumb: Diepe buiging. Echter 1 kleinigheidje hij zet de aangepaste tekst op het blad "Invoeren - Zoeken" en niet in de database van het blad artikelen. Daarentegen doet de invoer van een nieuw artikel het wel goed!

Edmoor helemaal in het begin van deze vraag heb is het document al toegevoegd!
 
Klopt. En daar staat dus niet in wat ik zei in #14:
"Het blad moet je eerst zichtbaar maken"

Vandaar dat ik vroeg om, naar wat ik aannam, je gewijzigde document.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan