• 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.

aanvullende rijen sorteren

Status
Niet open voor verdere reacties.

mobo2018

Gebruiker
Lid geworden
17 jul 2018
Berichten
68
Hallo,

Ik zit in een afrondende fase van de kwaliteitsrapportage.
Hierbij worden de diverse afwijkingen naar de betreffende map van de leverancier verplaatst.
Naarmate er meer regels bijkomen, wordt het overzicht ook steeds lastiger.
Daarom ben ik aan de slag gegaan om, bij elke toevoeging van nieuwe regels, deze te sorteren op artikelnummer. (kolom C in de bijlage)
Hiervoor heb ik een macro geplaatst in het betreffende tabblad.
Echter werkt deze niet en kan ik niet ontdekken waar de fout in deze macro zit.
Kan iemand kijken waar ik de mist in ga?

Alvast bedankt.

Gr,
MO
 

Bijlagen

Gebruik geen select. Het blad Dmetaal bestaat niet.

Code:
Sub VenA()
  With Sheets("D metaal")
    .Cells(5, 1).CurrentRegion.Sort .[C5], , .[F5], , , , , xlYes
  End With
End Sub
 
Ik heb het geprobeerd, maar helaas functioneert het niet.
Dit zal waarschijnlijk te maken hebben met de beperkte informatie die ik verstrekt heb.
Na het verplaatsen van nieuwe rijen sorteert hij niet.

Om e.e.a. te verduidelijken, heb ik een nieuwe bijlage gevoegd.

Ik wil graag na het verplaatsen via de macro onder de knop, de gegevens automatisch sorteren.
Met de macro aan het tabblad te plakken lukt het helaas niet.


Gr,
MO
 

Bijlagen

Code:
Sub Verplaatsen_naar_map()
  With Sheets("Kwaliteit totaal").Cells(1).CurrentRegion
    For Each sh In Sheets
      If sh.Name <> "Kwaliteit totaal" Then
        .AutoFilter 2, sh.Name
        .Offset(1).Copy sh.Cells(Rows.Count, 1).End(xlUp).Offset(1)
        [COLOR="#FF0000"]sh.Cells(5, 1).CurrentRegion.Sort sh.[C5], , sh.[F5], , , , , xlYes[/COLOR]
      End If
    Next sh
    .AutoFilter
  End With
End Sub
 
Ik ben met de code aan de slag gegaan, maar hij blijft vast hangen op de sortering.
Dit terwijl het voorbeeld, dat identiek is aan mijn werkoverzicht, wel perfect werkt.
Aan de code ligt het dus niet.

Ik ga i.i.g. proberen te achterhalen wat de oorzaak hiervan is, in de hoop dat alles functioneert, zoals het de bedoeling was.

In ieder geval bedankt voor je hulp.

Gr,
MO
 
Wat bedoel je met vast hangen? Krijg je een foutmelding of gebeurt er niets of gaat de sortering verkeerd?
 
Ik krijg de melding:
Fout 1004 tijdens uitvoering
"Methode Sort van klasse Range is mislukt"
Bij de foutopsporing word ik verwezen naar de regel, zoals hierboven in het rood gemarkeerd.
Laat ik deze regel weg, dat werkt alles.


Gr,

MO
 
Dan heb je waarschijnlijk lege bladen in dat bestand.
 
Met een controle?

Code:
If sh.Cells(5, 1) <> "" Then sh.Cells(5, 1).CurrentRegion.Sort sh.[C5], , sh.[F5], , , , , xlYes
 
Als ik deze regel invoer in de macro zoals hieronder, krijg ik weer een 1004 melding,



With Sheets("Werkmap").Cells(1).CurrentRegion
For Each sh In Sheets
If sh.Name <> "Werkmap" Then
.AutoFilter 1, sh.Name
.Offset(1).Copy sh.Cells(Rows.Count, 2).End(xlUp).Offset(1)
If sh.Cells(5, 1) <> "" Then sh.Cells(5, 1).CurrentRegion.Sort sh.[C5], , sh.[F5], , , , , xlYes
End If
Next sh
.AutoFilter
End With
End Sub


"Foutcode: 1004 tijdens uitvoering: Hiervoor moeten alle samengevoegde cellen dezelfde grootte hebben."
Voor zover ik kan zien zijn er geen samengevoegde cellen aanwezig.

Gr,
MO
 
Plaats code svp tussen codetags. Kan je het bestand hier plaatsen?
 
Sorry voor mijn late reactie. Momenteel heb ik minder tijd door de eindejaarsdrukte bij ons.

Bij het toepassen van de formule in andere bestanden, werkt deze perfect.
In ieder geval heb ik geen 1004 meldingen meer.
Zelf denk ik dan ook dat het probleem zit in het feit dat de geïmporteerde werkmappen waarmee ik werk niet dezelfde opbouw hebben.
Alleen kan ik hier de vinger niet achter krijgen.
De geimporteerde mappen hebben de naam "BAM" en "Inkpr"


Gr,

Mo
 

Bijlagen

Wat moet het worden dan en wat verwacht je van de helpers hier? Een stuk of tien modules doorploeteren? Wat zijn geïmporteerde mappen? De tabjes 'Bam' en 'Inkpr' hebben een totaal verschillende opmaak en inhoud dus wat moet hiermee gebeuren? Welk nut de samengevoegde cellen hebben ontgaat mij ook.
 
Ik snap dat het allemaal overkomt als een georganiseerde zooi.
Misschien is "georganiseerde" dan nog wel te veel van het goede.

Het doel klinkt vrij simpel.
Ik moet een kwaliteitsrapportage maken van een aantal leveranciers.

De gegevens in de werkbladen BAM en Inkpr, zoals in dit voorbeeld, krijg ik aangeleverd van de betreffende afdeling.
Voor deze rapportage moet ik dus gegevens uit BAM en Inkrp samenvoegen bij de leveranciers.
Het enige gemeenschappelijke is het artikelnummer.
Dat het misschien onlogisch en een warboel is, ben ik het wel mee eens.
Het uiteindelijke doel om de benodigde gegevens van zowel de BAM als de Inkrp bij de leveranciers te krijgen, lukt en levert geen problemen op.
Dat het omslachtig is, neem ik op de koop toe.

Om het tot slot alleen nog visueel overzichtelijk te maken, wil ik graag de gegevens bij de betreffende leveranciers sorteren op artikelnummer en daar kom ik vast te hangen.
Als dit te maken heeft met vorige bewerkingen, zal ik het handmatig moeten doen en is het niet anders
Mocht het via VBA kunnen, is dat alleen maar meegenomen

Ik hoop dat ik met bovenstaande een beetje duidelijkheid heb kunnen scheppen in het hele verhaal
 
Zorg ervoor dat je consequent bent. 'P & P ELEKTRO' is wat anders dan 'P&P ELEKTRO'. Gebruik geen samengevoegde cellen en lege kolommen. De CurrentRegion kan dan niet bepaald worden en met samengevoegde cellen in de kolomkoppen werkt het sorteren niet. Ipv alles via de werkbladen te laten lopen kan je beter alles in het geheugen laten doen dmv van bv array's. In de tab 'Inkpr' heb je formules staan het lijkt mij dat je dit niet zo aangeleverd krijgt. Om alleen te controleren op de gebruikte artikelcodes lijkt mij listig.

De code kan efficiënter maar zo is het, denk ik, nog te volgen. Alle handelingen in 1 procedure
Code:
Sub VenA()
  ar = Sheets("BAM").Cells(1, 2).CurrentRegion
  ar1 = ar
  ar2 = Sheets("Inkpr").Cells(1).CurrentRegion
  For j = 3 To UBound(ar)
    For jj = 2 To UBound(ar2)
      If ar(j, 4) = ar2(jj, 3) Then
        ar1(j - 2, 1) = ar2(jj, 1)
        ar1(j - 2, 2) = ar2(jj, 2)
        ar1(j - 2, 3) = ar2(jj, 3)
        ar1(j - 2, 5) = ar2(jj, 5)
        Exit For
      End If
    Next jj
    ar1(j - 2, 4) = ar(j, 5)
    ar1(j - 2, 6) = ar(j, 1)
    ar1(j - 2, 7) = ar(j, 3)
    ar1(j - 2, 8) = ar(j, 8)
    ar1(j - 2, 9) = ar(j, 9)
    ar1(j - 2, 10) = ar(j, 10)
    ar1(j - 2, 11) = ar(j, 11)
    ar1(j - 2, 12) = ar(j, 12)
  Next j
  
  With Sheets("Werkmap").Cells(1).CurrentRegion
    .Offset(1).Clear
    .Cells(2, 1).Resize(UBound(ar1) - 3, 12) = ar1
    For Each sh In Sheets(Array("P & P ELEKTRO", "AFR BV", "BOERS ELEKTRO", "DIGI METAAL"))
      .AutoFilter 2, sh.Name
      .Offset(1).Copy sh.Cells(Rows.Count, 1).End(xlUp).Offset(1)
      sh.Cells(5, 1).CurrentRegion.Sort sh.[C5], , , , , , , xlYes
    Next sh
    .AutoFilter
  End With
End Sub
 

Bijlagen

Je hebt inderdaad gelijk.
In het origineel staan inderdaad een aantal dingen waarin ik niet consequent ben geweest.
Met name de samengevoegde cellen vormen het grootste blok aan het been.
De aangeleverde documenten hebben reeds een aantal bewerkingen ondergaan voordat dit geresulteerd heeft in het gemaakte voorbeeld, maar dit ter zijde.

Inmiddels ben ik alles nagelopen op inconsequenties en functioneert het precies, zoals ik het voor ogen had.

Mijn dank is groot.

Gr,
Mo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan