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

Probleem met rijen die veranderen

Status
Niet open voor verdere reacties.

fun_surfer

Gebruiker
Lid geworden
25 aug 2001
Berichten
621
Hallo allemaal, ik heb op mijn werk een bestand aangemaakt met al onze klanten die een archieflocatie hebben. Deze staan per rij genoteerd op locatie bestaande uit 2 letters en 1 cijfer. Deze letters en cijfers heb ik allen in een aparte cel zodat ik wat sneller bij de juiste kom met de functie 'valideren'. Dit werkt allemaal perfect op het volgende kleine detail na: na een voor mij onbekende actie gaan alle locaties (rijen dus) in een andere volgorde als oorspronkelijk, ik heb hier al geruime tijd last van maar ik weet geen oorzaak of oplossing. Iemand een idee? Ik denk zelf iets met beveiligen maar ik weet niet of je ook een hele rij kunt beveiligen, maar zo dat je wel in enkele cellen een waarde kunt invullen? Op het gebied van beveiliging ben ik een leek dus wie weet is het antwoord bijzonder simpel!?:o
GRTZ fun_surfer.
 
Hey,

Heb je het zelf gemaakt of heeft iemand dit voor je gedaan

Zit er een macro in verwerkt ?

Kan me niet voorstellen dat dit anders vanzelf gaat.

kan je anders een voorbeeld maken...zonder al teveel werkelijke gegevens.
 
Heyu Eric, ik heb hem zelf gemaakt (met de hulp van vele Helpmij-ers!) en er zit een macro in die ervoor zorgt dat er in de bovenste rij de datum aangegeven wordt van laatste uitgifte van een locatie:
(Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$E3:$E719")) Is Nothing Then
If Target.Value <> "" Then
Range("F1").Value = Date
Else
Range("F1").Value = ""
End If
End If
End Sub

Verder zit er nog een macro in die de datum in een cel plaatst als er in de cel links hiervan een waarde wordt gezet, maar deze macro is werkzaam in een ander tabblad... Zoals eerder gezegd, ik weet niet welke actie ervoor zorgt dat alles door de war gaat, dit zou het zoeken naar de oplossing enorm vergemakkelijken!
Ik zal kijken of ik vanavond een aangepaste versie van het bestand kan plaatsen.
Alvast bedankt voor je reactie, GRTZ fun_surfer.
 
Hoi,

Deze macro zal de volgorde van uw gegevens niet beïnvloeden.
Maar waarschijnlijk heb je ergens macro's die sorteren of iets dergelijks. Bovendien schijn jij gebruik te maken van Event-macro's. En daar zit 'm natuurlijk het gevaar.
Event macro's moet je zeer goed onder controle houden, zodanig dat ze ook enkel en alleen in aktie treden wanneer jij dat wil.

De Event Worksheet_SelectionChange is bijvoorbeeld al een echte ramp. Maar ook: Worksheet_Calculate; Worksheet_Change;Workbook_SheetCalculate; Workbook_SheetChange enz. treden vrij vlot in aktie.

Luc
 
Beste Luc, ik heb hier geen macro's voor maar misschien wel iets dergelijks, dit weet ik alleen niet zeker. Ik heb het bestand als bijlage (met macro's!) dus misschien verduidelijkt dit meer. ;)
GTZ en ook jij alvast bedankt!
 
Laatst bewerkt:
Hoi Surfer,

Ik zie inderdaad nergens VBA die zoiets zou kunnen veroorzaken. Maar ik zie wel dat je overal de autofilter hebt opgezet.

Na een voor jou onbekende oorzaak....

Zou het kunnen dat je bij autofilter per ongeluk op sorteren geklikt hebt?

Luc
 
Hey Luc, ik heb Autofilter en Sorteren eigenlijk nooit als iets gelijkend gezien... :o
Mijn directeur veranderd ook nogal eens in dit bestand dus het zou kunnen dat het inderdaad zo gebeurt ja, hoe kan ik het sorteren voorkomen maar dan wel zo dat ik de optie Autofilter gewoon kan blijven gebruiken?
GRTZ Art.
 
Dat is moeilijk.
Indien het bestand niet gewijzigd mag worden, kan je er een alleen lezen bestand van maken.
Maar ik vermoed dat dat juist het probleem is. Zowel jij als je directeur moeten zaken kunnen wijzigen... of heb ik het verkeerd?

Dan zal je effe slimmer moeten zijn dan je directeur :evil:

Zet in de laatste kolom van je werkblad oplopende nummers.
Op het ogenblik dat je directeur de boel nog 's om zeep helpt, sorteer jij gewoonweg terug op die laatste kolom.
Uw directeur hoeft dit natuurlijk niet te weten. Hij zou wel 's op het idee kunnen komen om hier ook gebruik van te maken... met rampzalige gevolgen.

Luc
 
hmmm... nog een aavulling:
Zet die nummers niet in de laatste kolom, maar in een verborgen kolom tussen de andere kolommen. Wanneer uw directeur immers de zaken sorteert, maar die nummers niet meeselecteert, ben je weer bij af.

Luc
 
Beste Luc, het klinkt als achteraf-gepraat maar deze truc wilde ik ook uitproberen, ik wilde hier alleen een macro aan koppelen zodat het sorteren automatisch gebeurt als het bestand wordt geopend. Het opnemen van deze macro lukt me (denk ik) wel met de recorder, ik weet alleen niet hoe ik dit automatisch moet laten gebeuren als het bestand geopend wordt, maar misschien dat jij - of iemand anders natuurlijk! - me hierbij kunt helpen?
Wat bedoelde je trouwens met een event-macro, wordt de macro die ik voor ogen heb ook zo'n macro en is het daarom misschien af te raden? Zoals je waarschijnlijk al begrijpt is het hele macro-gebeuren voor mij als abracadabra... ;)
TNX so far, GRTZ Art.
 
Noem uw macro:

Sub Auto_Open()

Dan start ie automatisch bij het openen van het bestand

Luc
 
Beste Luc, zoals je me aanraadt zou hij als volgt worden:
Sub Auto_Open()
'
' Auto_Open Macro
'

'
Range("L2").Select
Range("A2:L750").Sort Key1:=Range("L2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

In het 3e werkblad gaat de macro echter ook werken en dit zou ik willen voorkomen... Hoe kan ik dit aanpassen en is het ook mogelijk de macro wat meer op de achtergrond te laten werken? Als ik voorheen het bestand opende bleef hij in de laatst bewerkte cel, nu gat hij naar het 3e werkblad en opent hij daar met cel C2 actief.
GRTZ Art.
 
Zo misschien:

Sub Auto_Open()
'
' Auto_Open Macro
'

'
With Sheets("Archief")
.Range("A2:L750").Sort Key1:=.Range("L2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
End Sub


Kopieer deze macro... want hier en daar staat er een extra puntje.

Luc
 
Beste Luc, hij werkt perfect! Wat zorgt ervoor dat hij op de achtergrond werkt, dat kan ik niet echt herleiden? Komt het omdat je eerst L2 selecteert?
In ieder geval hardstikke bedankt, misschien kan ik zo nog meer sorteermanieren inbouwen en aan een cel toewijzen, dit biedt weer stof tot uitproberen!
GRTZ Art.
 
Hoi,

dit:

Range("L2").Select

zorgt er voor dat alles te zien is. Dat moet dus weg. Een oud stokpaardje van me:
Vermijd Select; Selection en Activate.
Dat is het grote nadeel van de macrorecorder, dat die dit altijd en overal gebruikt. Uw code wordt er onrustig, en trager door.

Luc
 
Als ik het goed begrijp zorgt Range(X).Select dus voor de wijziging van actieve cel; weer wat geleerd! Ik heb hem inderdaad met de macrorecorder opgenomen... Nogmaals bedankt voor het meedenken!
GRTZ Art.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan