Foto's zoeken

Status
Niet open voor verdere reacties.
zie bijlage
 

Bijlagen

  • foto.xlsm
    29,8 KB · Weergaven: 42
Laatst bewerkt:
Beste Cow en WoutMag

Code van WoutMag werkt, alleen kan ik daar nog niet zoeken op _A

Code van Cow krijg ik steeds 0 goede en slechte subdirectories, ik heb alle mogelijke vormen al ingevuld.
Ik DENK dat het niet aan mij ligt, met de nadruk op DENKEN.

Alvast super bedankt om deze codes te knutselen! Maar willen/kunnen jullie deze nog eens bekijken aub?

Mvg

Bart
 
je aanname "DENK" bleek juist te zijn.
CMD deed even niet wat ik er van verwachtte, eigenaardig.

Even kijken of het zo werkt.
In M1 je directory invullen zonder met een \ te eindigen.
 

Bijlagen

  • foto (1).xlsm
    58 KB · Weergaven: 36
Laatst bewerkt:
Assumpties:

- geen spaties in directorynamen
- geen diakritische tekens in directorynamen


Code:
Sub M_snb()
   c00 = "C:\users\eigenaar\pictures\*.jpg"
   sn = Split(CreateObject("WScript.Shell").Exec("cmd /c dir """ & c00 & """ /b /s").StdOut.ReadAll, vbCrLf)
end sub
 
Code:
sn = Split(CreateObject("WScript.Shell").Exec("cmd /c dir[COLOR="#FF0000"] """[/COLOR] & c00 &[COLOR="#FF0000"] """[/COLOR] /b /s").StdOut.ReadAll, vbCrLf)
Ik heb niet tegen je assumpties gezondigd denk ik.
Je gaat me nu toch niet vertellen dat het in die 3-voudige aanhalingstekens zit ... .
Dan zakt mijn broek werkelijk af !
Ik probeer het straks eens uit op het origineel en meld me terug.
 
Dat is meer het geval bij de opstelling van Bart de Wever bij de samenstelling van een federale regering.
Dat lijkt me eerder een illustratie van een Vlaams-broek-afzak-virus.
 
We zijn dan wel wereldrecordhouder "regering vormen" met een dikke 500 dagen, inzake corona zijn we een stichtend voorbeeld.
Als ik de digitale nederlandse kranten erop nalees, dan beseffen jullie nog niet welke tsunami er in aantocht is.
Loop ik hier naar de winkel, haast het enige toegelaten activiteit, behalve wandelen en fietsen in een beperkte perimeter, dan schrok ik mezelf een hoedje.
Iedereen loopt er rond met een mondmasker of een sjaal voor de mond en plastiek handschoenen. 1 klant per 10 m2 winkeloppervlakte.
Er heerst enorme discipline, dat is ook de reden waarom de ministerraad gisteren de riem niet harder heeft dichtgetrokken.

Er waren hooguit wat kritische stemmen over de beperkte solidariteit tussen de europese landen, speciaal dan richting Italië.
Vergeet niet, kwa bedden op de spoed zitten we nu op 43% bezetting, een week voor de top.
Jullie zitten op de curve 2-3 weken achter ons.
Straks, als we de top voorbij zijn, dan zal Nederland blij zijn als ze gebruik mag maken van onze expertise en ons materiaal.
Wij houden nu onze noordergrens dicht, groepsimmuniteit, dat was het modewoord bij jullie !
Binnen 2 weken mag die grens weer open voor ambulances met nederlandse patiënten voor onze ziekenhuizen en onze oververmoeide medische staf.

Jongens, toch, "blijf in jullie kot", dat is ministriële taal hier (onze minister van volksgezondheid Maggie) en wij houden ons daaraan.

Wat een klein virusje kan doen ...

Dagelijkse persconferentie om 10:00, 3 wetenschappers - 0 politiekers
https://www.gva.be/cnt/dmf20200317_...t-en-welke-regio-s-zijn-het-zwaarst-getroffen
 
Laatst bewerkt:
Mijn VBA-suggestie behelsde 3 wijzigingen.
 
sorry, ik liet me emotioneel eventjes gaan !
De neef van een kennis is radioloog (beoordeelt de fotos in het ziekenhuis).
Die vertelt verhalen van een gezonde, sportieve dertiger, die fluitend het ziekenhuis binnenkomt met wat ademhalingsklachten.
Op de fotos lijken zijn longen de combinatie van een verstokte rokende bejaarde met een chronische asbestpatiënt.
Weet dat longen niet bezenuwd zijn, je voelt geen pijn, zelfs als ze compleet verwoest zijn. Je longen vullen zich geleidelijk met ontstekingsvocht zodat je longcapaciteit achteruitgaat.
Gelukkig je verdrinkt niet in je eigen vocht, je gaat er aan door hartfalen, die kan geen genoeg zuurstof meer rondpompen.
Die gezonde kerel van daarnet, die hebben ze 48 uur later in een dubbele lijkzak gestopt en daarna in een lijkkist, die niet meer geopend mocht worden.
Op de begrafenis zelf mochten er 20 personen aanwezig zijn, de stoelen stonden op 1.5 m van elkaar, er mochten geen handjes geschud worden, geen omhelzingen, met je hand op je hart buigen ... .
Doopsels, huwelijken, religieuze bijeenkomsten, ten strengste verboven.
Ons parlement heeft volmachten gestemd in 3 beurten om zo de afstandsregels te respekteren en dan mogen er bij jullie nog vergaderingen tot 100 man plaatsvinden.
Begin alvast onze kranten te lezen om te weten wat er aan de hand is en "blijf in jullie kot".

O, ja, laat deze reactie bezinken en herlees die over 3 weken nog een keer alvorens te reageren.

Als uitsmijter, een geanimeerd filmpje van onze minister van volksgezondheid
https://www.hln.be/showbizz/muziek/...in-uw-kot-remix-van-maggie-de-block~aa817f14/
 
Laatst bewerkt:
@ Cow1!

Je bestand uit #23 lijkt mij te werken maar;
* Kan in kolom A van tab "FOTO" en "GEEN FOTO" enkel de naam ( in dit geval nummer) van de map komen te staan ipv de gehele directory?
* De kolommen D en E vind ik wel een meerwaarde, alleen krijg ik de indruk dat niet altijd alles steeds gewist/vervangen wordt.
Als ik de namen van de (test)foto's aanpas en voer de macro terug uit, blijven de vorige directories staan (precies)…

Vooral de twee Msgbox'en vind ik wel heel tof en duidelijk, top!
Als ik de code uitvoer eindig ik wel steeds in de module zelf (het codescherm), loopt het hier ergens fout dan?

@Cow18 en snb

Moet ik iets doen met jullie (stukken) codes, of?

Bedankt alvast voor de moeite!
 
ik heb overal het path, vanaf waar je start, er uit gesloopt, zoals gevraagd.
Hopelijk volstaat dit, ik bedoel als je subdirectories nog verder vertakken dan 1 niveau, dan moet er misschien nog een stap verder gegaan worden en nog meer geschrapt worden.
In dat laatste geval hoor ik het wel.

Die msgboxes, die begreep ik niet, dus heb ik er ééntje terug aangezet, die vertelt hoeveel subdirectories en files er zijn.
Vermoedelijk heb je het over die kolommen D en E.

Verder kijk je het even aan, een beetje afhankelijk van het aantal files en subdirectories is het in een wip klaar.
Om toch duidelijk te maken, dat het nieuwe gegevens zijn, wordt iedere keer een alternerende kleur gebruikt, nadat de vorige gegevens gewist waren.

Verder moet je niets meer doen met de andere info.
 

Bijlagen

  • foto (1) (1).xlsm
    59,5 KB · Weergaven: 43
@snb, ik ben wat aan het stoeien geweest met je insteek en ben ook met de prompt aan de gang gegaan.
Nu loopt het lekker, ik weet eventjes niet waar het fout gegaan is.
Die 3-voudige dubbele aanhalingstekens, die hou ik in mijn achterhoofd, maar zag voorlopig het verschil niet.
 
Splitsen met vbCrLf in plaats van vbCr.
 
Dag Cow18

Ziet er zeer goed uit!
Maar als de macro alleen in de bovenste laag van de mappen gaat zoeken is dit goed.

Dit gaat over een 80000 mappen, dus als bv alles leeg is moet de macro 80000 lijnen wegschrijven en er zijn er maar iets van een 65000 in Excel denk ik?
=> Dit viel mij juist te binnen, ik weet niet of dit een probleem vormt?

Pracht werk!
 
je gaf als eerste bijlage een "xlsm", dus verwacht ik dat die iets van dik miljoen rijen heeft, dat van die 65.000, dat was nog in de prehistorie met een "xls".
Doe even (enkele keren) CTRL-pijltje naar beneden en kijk op welke rij je uitkomt
 
@cow18

Mogelijke complicatie: application.transpose is beperkt tot ca. 7000.
Een array met meer elementen kan niet getransponeerd worden.
Dan zul je de gegevens eerst in een 2-dimensionele array moeten schrijven en die aan een gebied toekennen.
 
Laatst bewerkt:
inderdaad, er zit een limiet op.
Voorlopig zou ik zeggen tot 65.000 doet hij het netjes en eens daar voorbij is het miserie troef.
 

Bijlagen

  • transMax.xlsb
    19,3 KB · Weergaven: 40
ik gooi 1.000.000 records in een arraylist en haal die er per 65.000 netjes weer uit.
Die worden dan getransponeerd en blijkbaar lukt dat netjes.

Code:
Sub opsplitsen()
   Dim test()
   ActiveSheet.UsedRange.ClearContents
   Set sca = CreateObject("System.Collections.ArrayList")
   With sca
      Do While .Count < 1000000                  'een miljoen gegevens !!!
         .Add "the brown fox jumps over the lazy dog" & "|" & Rnd() & "|" & .Count
      Loop

      i = 1                                      'start in kolom 1
      rijen = 65000                              'per 65.000 in een kolom zetten
      Do
         test = .toarray                         'sca uitlezen
         ReDim Preserve test(Application.Min(UBound(test), rijen - 1))   'herdimensioneren
         Cells(1, i).Resize(UBound(test) + 1).Value = Application.Transpose(test)   'wegschrijven
         i = i + 1                               'volgende kolom
         If rijen < .Count Then                  'nog voldoende voor volgende loop
            .Removerange 0, rijen                'verwijder er zoveel
         Else
            .Clear                               'we zijn klaar, sca leegmaken
         End If
      Loop While .Count

   End With
   ActiveSheet.UsedRange.EntireColumn.ColumnWidth = 50

End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan