Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 14 van 14

Onderwerp: array max gegevens

  1. #1
    Vraag is niet opgelost

    array max gegevens

    Is er een max. aantal regels dat er naar een array kan worden gelezen?

    Krijg foutmelding 6 overloop bij onderstaande code.

    Rapportage dat naar de array word gelezen bevat circa 100.000 regels.


    Code:
    Dim sn, c As Range, dGeboorte As Date, dBegin As Date, sNaam As String, l As Long, WB As Workbook, splits, bOpen As Boolean
      splits = Split("I:\StafDGR\FIA\Administratie\FinAdm\Werkinstructies en kostenplaatsen FA\C_rapportage labnota.xlsx ", "\")
      On Error Resume Next
      Set WB = Workbooks(splits(UBound(splits)))
      bOpen = Not (WB Is Nothing)
      If Not bOpen Then
        Set WB = Workbooks.Open(Join(splits, "\"))
        If WB Is Nothing Then
          MsgBox "kan die file niet openen", vbCritical: Exit Sub
        End If
      End If
      On Error GoTo 0
      sn = WB.Worksheets(1).Range("A4").CurrentRegion          'kopie van je data-gegevens staan in dit blad en lees je naar een array
      If Not bOpen Then WB.Close xlNo
    
      For Each c In ActiveWorkbook.Sheets("orderregel").UsedRange.Columns("A").SpecialCells(xlConstants)  'loop alle namen af in je C-kolom
        If c.Row > 1 Then
          sNaam = c.Value
          dGeboorte = c.Offset(, 1).Value
          dBsn = c.Offset(, 2).Value
          dBegin = c.Offset(, 6).Value                         'begindatum staat 1 kolom naar rechts
          c.Offset(, 4).Value = "Niet gevonden"
          For l = 1 To UBound(sn)                              'loop alle gegevens in je array af
            If sn(l, 4) = dBsn And sn(l, 5) <= dBegin And (dBegin <= sn(l, 6) Or IsEmpty(sn(l, 6))) Then  'geboortedatum klopt, deel van de naam ook en valt binnen periode
            Select Case sn(l, 8)                                       'onderzoek de mogelijke waarden van sn(l,10)
      Case 403400 To 403470: c.Offset(, 4).Value = 403400      'ligt die hiertussen, dan schrijf je deze waarde weg
      Case 403700 To 403770: c.Offset(, 4).Value = 403700      '2e mogelijkheid, andere waarde wegschrijven
      Case 403800 To 403870: c.Offset(, 4).Value = 403800
      Case 403900 To 403980: c.Offset(, 4).Value = 403900
      Case 405700 To 405770: c.Offset(, 4).Value = 405720
      Case 405800 To 405870: c.Offset(, 4).Value = 405820
      Case 405900 To 405970: c.Offset(, 4).Value = 405920
      Case 407640 To 407680: c.Offset(, 4).Value = 407100
      Case 407700 To 407900: c.Offset(, 4).Value = 407100
      Case 601100 To 602599: c.Offset(, 4).Value = 602600
      Case 603200 To 603980: c.Offset(, 4).Value = 603170
      Case Else: c.Offset(, 4).Value = sn(l, 8)               'in alle andere gevallen, de oorspronkelijke waarde wegschrijven
    End Select
               Exit For                                         'spring uit de loop
            End If
           Next
           End If
           Next
    
    End Sub

  2. #2
    Giga Honourable Senior Member
    Verenigingslid

    Geregistreerd
    12 juni 2008
    in welke regel gaat het mis ?
    Voorbeeldbestand ?
    VBA voor smarties

    VBA is een taal die je moet leren met een grammatica- en een woordenboek.
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  3. #3
    Bij de foutopsporing arceert die de volgende regel "sn = WB.Worksheets(1).Range("A4").CurrentRegion".

    Bij hetzelfde soort bestand met 10.000 regels lukt het wel, maar bij 100.000 geeft die de foutmelding. Het enigste verschil is het aantal regels aan data.

    Kan het bestand niet zo maar delen, er staan namelijk gevoelige patiëntengegevens in.
    Ik kan wel het e.e.a. bewerken, maar weet niet of je er dan iets aan hebt.

  4. #4
    Giga Honourable Senior Member
    Verenigingslid

    Geregistreerd
    12 juni 2008
    Als je aangeeft hoe groot (regels& kolommen) de 'currentregion' is, kunnen we zelf even testen op eigen systemen.
    Laatst aangepast door snb : 5 januari 2017 om 21:53
    VBA voor smarties

    VBA is een taal die je moet leren met een grammatica- en een woordenboek.
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  5. #5
    ik vond dit op google;
    De Runtime Error 6 optreedt in de Visual Basic -programma . Het is een overflow probleem dat kan optreden wanneer de Visual Basic- programma probeert te veel gegevens op te slaan in de tijdelijke mappen gebied . Runtime files helpen Windows vertalen taal van een programma in Windows taal, zodat het programma sneller draait . U kunt de Runtime Error 6 boodschap krijgen om verschillende redenen . Een reden is dat u gebruik maakt van een backslash in plaats van een slash in een van uw berekeningen . Andere redenen zijn een overbelaste tijdelijke map , verouderde software of een register fout .

  6. #6
    Giga Honourable Senior Member
    Verenigingslid

    Geregistreerd
    12 juni 2008
    Dit geeft bij mij geen foutmelding:

    Code:
    Sub M_snb()
      Cells(1).Resize(10 ^ 5, 10 ^ 2) = "abcdefg"
      
      sn = Cells(1).CurrentRegion
    End Sub
    VBA voor smarties

    VBA is een taal die je moet leren met een grammatica- en een woordenboek.
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  7. #7
    De currentregion = A4 t/m H88646, maar de regels worden naarmate de tijd steeds meer.

    Het zal dan inderdaad te maken moeten hebben met overbelaste tijdelijke map of verouderde software.

    Code:
    Sub M_snb()
      Cells(1).Resize(10 ^ 5, 10 ^ 2) = "abcdefg"
      
      sn = Cells(1).CurrentRegion
    End Sub
    Moet ik deze code in de andere code verwerken of vooraf uitvoeren?

  8. #8
    Giga Honourable Senior Member
    Verenigingslid

    Geregistreerd
    12 juni 2008
    Mijn code illustreert (dat is je blijkbaar ontgaan) dat jouw vooronderstellingen over 'overbelast' en verouderd' niet kloppen.
    Gebruik geen code die je niet begrijpt. Bestudeer daarom eerst mijn code en concludeer dat je daar niets mee moet in jouw geval.
    Laatst aangepast door snb : 13 januari 2017 om 09:11
    VBA voor smarties

    VBA is een taal die je moet leren met een grammatica- en een woordenboek.
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  9. #9
    Giga Honourable Senior Member HSV's avatar
    Geregistreerd
    18 juli 2008
    Ik lees steeds iets over 32Bits en 2Gb aan max.
    Weet jij daar iets meer van @snb?
    ____________
    mvg,
    Harry

    Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
    (Grunnegs-Gronings)

  10. #10
    Ik snap nu wat je bedoeld met jouw code, dat het niks te maken heeft met de grote.

    Heeft het misschien met de declaraties te maken? Las ook ergens dat integer als grootse waarde 32.767 mag hebben. Al zie ik geen declaratie integer in de code.

  11. #11
    Giga Honourable Senior Member
    Verenigingslid

    Geregistreerd
    12 juni 2008
    Zonder declaraties zijn er geen beperkingen. Je bedoelt natuurlijk de grootte (zelfstandig naamwoord).
    VBA voor smarties

    VBA is een taal die je moet leren met een grammatica- en een woordenboek.
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  12. #12
    Tera Honourable Senior Member
    Verenigingslid
    OctaFish's avatar
    Geregistreerd
    6 februari 2009
    Locatie
    Rotterdam
    Afstand tot server
    ±151 km
    Sprak de man die de wereld 'overbals' wil aansmeren
    Quote Origineel gepost door snb Bekijk Bericht
    Mijn code illustreert (dat is je blijkbaar ontgaan) dat jou vooronderstellingen overe 'overbals' en verouderd' niet kloppen.
    Gebruik de QUOTE knop alleen als je iets wit citeren.
    Op deze pagina kun je zien hoe je met TAGS werkt.

  13. #13
    Giga Honourable Senior Member
    Verenigingslid

    Geregistreerd
    12 juni 2008
    @Octa

    Dankjewel. Ik heb de fouten fluks gecorrigeerd.
    Het lijkt me wel een prettige aanvulling op galabals en VBA globals.
    Laatst aangepast door snb : 13 januari 2017 om 09:14
    VBA voor smarties

    VBA is een taal die je moet leren met een grammatica- en een woordenboek.
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  14. #14
    iemand een idee wat het probleem dan wel is?

  15. Dit topic is automatisch gesloten omdat er sinds vier maanden niet meer op gereageerd is.

    Indien gewenst kan de topicstarter een verzoek tot heropening indienen.

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Aanbiedingen