abonnement Unibet Coolblue
pi_117851047
quote:
0s.gif Op donderdag 11 oktober 2012 11:17 schreef Frixel het volgende:
Ik heb nu onderstaande (na de alinea) ingebouwd maar dan sorteertt hij een bestand dat op het moment actief is en niet het genoemde bestand.
[ code verwijderd ]

Je moet hier het volgende doen
1
2
3
4
5
6
7
8
Dim wkb As Workbook, sht As Worksheet
    Set wkb = GetObject("P:\voorbeeld.xls")   
    Set sht = wkb.Sheets(1)  
   

    wkb.sht.Range("A1:B44").Sort Key1:=wkb.sht.Range("B2"), Order1:=xlAscending, Header:= _
        xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Ik zou xlguess sowieso altijd vervangen door xlyes of xlno. Verder geef je nu aan dat je de betreffende workbook/worksheet moet sorteren en niet een actief workbook.
pi_117851098
quote:
0s.gif Op donderdag 11 oktober 2012 11:30 schreef Basp1 het volgende:
Wat gebeurt er als je in regel 5 ipv Set tst = Sheets("Sheet2").Select
iets van Set tst = wkb.Sheets("Sheet2").Select zou zetten?
selecteren, wbk actief hebben of sheet actief hebben is niet nodig.
pi_117851495
Jammer, een foumelding op die regel wkb.sht.Range etc

melding is:
Object doesn`t support this property or method.

[ Bericht 0% gewijzigd door Frixel op 11-10-2012 14:55:47 ]
pi_117854790
quote:
0s.gif Op donderdag 11 oktober 2012 12:42 schreef Xperia het volgende:
Hallo allemaal.. ik heb een vraagje:

Ik heb een excel bestand die beveiligd moet worden d.m.v. een wachtwoord, maar tegelijkertijd mag iedereen het Excel bestand wel lezen echter mogen ze geen wijzgingen uitvoeren.

Dus zodra ze het bestand willen openen en wijzigen dienen ze een wachtwoord in te voeren, maar wanneer ze op de button "Alleen lezen" klikken wordt het bestand wel geopend maar dan alleen voor leesrechten.

Hoe stel ik dat in?

Versie: Excel 20120

Zie printscreen om het te verduideleken:

[ afbeelding ]
iemand? :{
pi_117855391
quote:
0s.gif Op donderdag 11 oktober 2012 13:41 schreef Frixel het volgende:
Jammer, een foumelding op die regel wkb.sht.Range etc

melding is:
Object doesn`t support this property or method.
wat als je dat ding nou eerst echt eens opent als een excel instance. Dat doe ik ook namelijk
1
2
3
4
5
6
7
8
dim srcwbk As Workbook
dim sht As Worksheet
Set srcwbk = Workbooks.Open(filename:=strlocation, UpdateLinks:=False)
srcwbk.sht.range(....).sort en dan die key ook srcwbk.sht.range(keyrange)

Afsluiten kan dan weer met 
srcwbk.Close savechanges:=true
    Set srcwbk = Nothing              
pi_117855439
quote:
0s.gif Op donderdag 11 oktober 2012 15:03 schreef Xperia het volgende:

[..]

iemand? :{
bij opslaan als > wachtwoord? of snap ik nu iets niet
  donderdag 11 oktober 2012 @ 16:17:54 #57
85514 ralfie
!Yvan eht nioj
pi_117857806
quote:
0s.gif Op donderdag 11 oktober 2012 15:03 schreef Xperia het volgende:

[..]

iemand? :{
Bij werkmap beveiligen kun je aangeven wat er beveiligd moet worden.
in nederlands controleren -> werkmap/blad beveiligen
pi_117857901
quote:
0s.gif Op donderdag 11 oktober 2012 15:21 schreef Holy_Goat het volgende:

[..]

bij opslaan als > wachtwoord? of snap ik nu iets niet
Hulp gevraagd van MS Excel professionals

Dankan er net een ander window verschijnen en dat is niet goed genoeg. :D
pi_117883172
quote:
0s.gif Op donderdag 11 oktober 2012 15:21 schreef Holy_Goat het volgende:

[..]

bij opslaan als > wachtwoord? of snap ik nu iets niet
Helemaal top ^O^ Merci
pi_117885431
V
quote:
0s.gif Op vrijdag 12 oktober 2012 07:31 schreef Xperia het volgende:

[..]

Helemaal top ^O^ Merci
Volgende keer googelen }:|
Eerste hit bij zoeken op: opslaan met wachtwoord excel
http://www.worksheet.nl/f(...)bij-openen-file.html

quote:
Open de betreffende file. Dan klik linksboven op bestand, dan op opslaan als.. In het nieuwe venster zie je rechts EXTRA staan. Klik hierop en selecteer dan "Algemene Opties". Voeg een wachtwoord in bij " wachtwoord voor openen". Klik op OK. Je moet het wachtwoord dan nog eens ingeven. Klik weer op OK. Geef de file een naam ( je mag dezelfde houden als die je had bij het openen) en klik op opslaan. Nu kan je het bestand alleen nog openen met dat wachtwoord.
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
pi_117954310
Hm, kom er eigenlijk niet helemaal uit.

Ik heb 2 cellen, gevuld met cijfers. Nu wil ik naast die 2 cellen een andere cel hebben, die een bepaalde waarde aangeeft als één van de twee het hoogste is.



Voorbeeld. Q2 en R2 hebben de cijfers. Q2 is het hoogste, want die heeft het cijfer 4. R2 heeft het cijfer 2 er in. Dan wil ik dat cel S2 de letter: P aangeeft.

:D
pi_117954420
Heuh, is al gelukt! Heb het gedaan als volgt:
=ALS(Q2 > R2; "P"; "D")
pi_117987489
Ik kom er nog steeds niet uit met onderstaande macro.

Mijn probleem is dat de file .bestand niet fysiek geopend dient te worden en dat likt dan ook met de optie GetObject ("P:\bestand.csv")
Daardoor is het wel aktief en zichtbaar in VBA.
Dan moet het bestand dus gesorteerd worden (kolom H) en dat wil maar niet lukken als het bestand fysiek door excel geopend is.

Is hier nog een oplossing of aanpassing op de code voor te bedenken?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub test()

' Macro recorded 9-10-2012 by xxx
 GetObject ("P:\bestand.csv")
  
    Dim wkb As Workbook, sht As Worksheet
    'Deze regel opent Wel het bestand, maar als object. Het is niet zichtbaar of oproepbaar vanuit excel.
    Set wkb = GetObject("P:\bestand.csv")    'hier je pad + bestand
    Set sht = wkb.Sheets(1)    '1 is eerste werkblad, of anders werkbladnaam invoeren
           
    sht.Range("A1:P60000").Sort Key1:=Range("H2"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    
  With Sheets(1)
      .Columns(3).Insert
      .Range("C3") = "Collo No"
      .Range("C4").Resize(.Cells(Rows.Count, 2).End(xlUp).Row) = "=LOOKUP(C[-1],bestand.csv!R2C8:R60000C8,bestand.csv!R2C6:R60000C6)"
        
    On Error Resume Next
    Application.ScreenUpdating = False
    
    wkb.Close False    'anders blijft het wkb in VBA als geopend achter

    
   End With
End Sub
pi_117988349
quote:
0s.gif Op maandag 15 oktober 2012 09:20 schreef Frixel het volgende:
Ik kom er nog steeds niet uit met onderstaande macro.

Mijn probleem is dat de file .bestand niet fysiek geopend dient te worden en dat likt dan ook met de optie GetObject ("P:\bestand.csv")
Daardoor is het wel aktief en zichtbaar in VBA.
Dan moet het bestand dus gesorteerd worden (kolom H) en dat wil maar niet lukken als het bestand fysiek door excel geopend is.

Is hier nog een oplossing of aanpassing op de code voor te bedenken?
[ code verwijderd ]

je bedoelt dat het niet lukt als het NIET fysiek door excel is geopend?
pi_117988651
quote:
0s.gif Op maandag 15 oktober 2012 10:00 schreef Holy_Goat het volgende:

[..]

je bedoelt dat het niet lukt als het NIET fysiek door excel is geopend?
klopt, Als het niet fysiek door Excel is geopend lukt het niet. 8)7

Het vervelende is dat het bestand groot en op netwerk staat dus duurt het (te)lang voordat het geopend, en bewerkt is.
Dan komt erbij dat de macro meerdere keren per dag gebruikt word en dan hele ritueel steeds herhaald moet worden. Of het moet kunnen zien dat het de eerste keer al gesorteerd is en dat die bewerking niet meer hoeft plaats te vinden!
Dan hoeft het daarna ook niet steeds meer geopend te worden.
Iedere dag is het een nieuw bestand dus 1 keer bewerken en dan nvoorlopig niets meer aan doen is ook geen optie.

Maar ja, dat gaat mijn pet te boven om zoiets te maken :D
pi_117989317
quote:
0s.gif Op maandag 15 oktober 2012 10:16 schreef Frixel het volgende:

[..]

klopt, Als het niet fysiek door Excel is geopend lukt het niet. 8)7

Het vervelende is dat het bestand groot en op netwerk staat dus duurt het (te)lang voordat het geopend, en bewerkt is.
Dan komt erbij dat de macro meerdere keren per dag gebruikt word en dan hele ritueel steeds herhaald moet worden. Of het moet kunnen zien dat het de eerste keer al gesorteerd is en dat die bewerking niet meer hoeft plaats te vinden!
Dan hoeft het daarna ook niet steeds meer geopend te worden.
Iedere dag is het een nieuw bestand dus 1 keer bewerken en dan nvoorlopig niets meer aan doen is ook geen optie.

Maar ja, dat gaat mijn pet te boven om zoiets te maken :D
Hoeveel kolommen gaat het om?
En hoeveel rijen?

Wat je anders zou kunnen doen is (een beetje stom wellicht) alle data inlezen in arrays,
deze intern sorteren, en als een nieuwe csv wegschrijven. Aangeven of iets al gesorteerd is is simpel, je zou een klein bestandje kunnen maken met daarin sorted=1 en de datum oid.
pi_117989422
Je zou ook eens kunnen kijken naar het gebruik van ActiveX data objects
pi_117989463
quote:
0s.gif Op maandag 15 oktober 2012 10:44 schreef Holy_Goat het volgende:
Je zou ook eens kunnen kijken naar het gebruik van ActiveX data objects
Hmmja. dit gaat me dus te ver. daar moet ik bij afhaken...

bestand is kolom A t/m P en 60000 regels
pi_117990219
ik snap alleen niet echt waarom openen vanuit netwerk meer tijd zou kosten als je het echt IN EXCEL opent, dan wanneer je het niet echt opent.

Zou het voor jou ook te ver gaan om alles in te lezen in een 2D array en dan via een quicksort op de key (zoek maar op quicksort, best leuk) alles sorteren + terugstoppen in csv
pi_117990343
quote:
0s.gif Op maandag 15 oktober 2012 11:11 schreef Holy_Goat het volgende:
ik snap alleen niet echt waarom openen vanuit netwerk meer tijd zou kosten als je het echt IN EXCEL opent, dan wanneer je het niet echt opent.

Zou het voor jou ook te ver gaan om alles in te lezen in een 2D array en dan via een quicksort op de key (zoek maar op quicksort, best leuk) alles sorteren + terugstoppen in csv
Ik zal eens zoeken op "quicksort " maar vrees dat ik er niet veel verder mee kom. Ik weet waar ik een macro kan maken en plakken in VBA maar dan houd het wel op.

Dat openen vergt toch wel tijd iedere keer als de macro gebruikt word. (zeker 10x per dag) en dan doet ie steeds dat openen en sorteren.
pi_117990541
quote:
0s.gif Op maandag 15 oktober 2012 11:15 schreef Frixel het volgende:

[..]

Ik zal eens zoeken op "quicksort " maar vrees dat ik er niet veel verder mee kom. Ik weet waar ik een macro kan maken en plakken in VBA maar dan houd het wel op.

Dat openen vergt toch wel tijd iedere keer als de macro gebruikt word. (zeker 10x per dag) en dan doet ie steeds dat openen en sorteren.
dus op zich is openen geen probleem, als het maar niet 10x gedaan word? (om te sorteren)
pi_117990591
quote:
0s.gif Op maandag 15 oktober 2012 11:20 schreef Holy_Goat het volgende:

[..]

dus op zich is openen geen probleem, als het maar niet 10x gedaan word? (om te sorteren)
klopt. 1x is genoeg als het gesaved word.
pi_117990713
quote:
0s.gif Op maandag 15 oktober 2012 11:21 schreef Frixel het volgende:

[..]

klopt. 1x is genoeg als het gesaved word.
Dan zou ik toch met mijn eerdere code de file echt in excel openen, dan de .sort gebruiken en opslaan.
Verder kun je een bestandje ernaast maken bijvoorbeeld issorted.txt en daarin bv de datum van vandaag. Als de datum gisteren is, dan openen en sorteren en datum aanpassen in bestandje. Anders als datum al vandaag is, lekker niet openen en sorteren.
pi_117990768
Dus zo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
dim welkedag as date
open "locatie/issorted.txt" for input as #1
input #1, welkedag
close #1

if welkedag == Date() then exit sub

dim srcwbk As Workbook
dim sht As Worksheet
Set srcwbk = Workbooks.Open(filename:="je locatie hier", UpdateLinks:=False)
srcwbk.sht.range(....).sort en dan die key ook srcwbk.sht.range(keyrange)

Afsluiten kan dan weer met 
srcwbk.Close savechanges:=true
    Set srcwbk = Nothing 

open "locatie/issorted.txt" for output as #1
write #1, Date
close #1
pi_117991071
quote:
0s.gif Op maandag 15 oktober 2012 11:25 schreef Holy_Goat het volgende:

[..]

Dan zou ik toch met mijn eerdere code de file echt in excel openen, dan de .sort gebruiken en opslaan.
Verder kun je een bestandje ernaast maken bijvoorbeeld issorted.txt en daarin bv de datum van vandaag. Als de datum gisteren is, dan openen en sorteren en datum aanpassen in bestandje. Anders als datum al vandaag is, lekker niet openen en sorteren.
Echt heel erg bedankt voor de moeite hoor maar ik haak af.
Dit gaat me te ver om te snappen!
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')