Voor het eerste deel is er zover ik weet geen normale formule die je daar bij kunt helpen en moet je dus naar VBA en krijg je iets in de trant van:quote:Op donderdag 28 juni 2012 16:31 schreef xyntarsus het volgende:
en wederom ben ik er met een vraag.
Ik wil in het bestand dat ik aan het bouwen ben nog 2 extra dingen toevoegen.
1. een lijst van alle tabbladen (in mijn geval projectnummers)
waarbij dan een aantal gegevens uit het tabblad worden gezet in een lijst
2. een zoekfunctie waarbij ik een artikelnummer opgeef en die door meerdere tabbladen heen zoekt en kijkt of er in een bepaalde range cellen
(gedefinieerd door een artikelnummer aan het begin van de regel) niet lege cellen zijn.
deze regels met gegevens (dus de regels waarin in gegevens zijn ingevoerd) moet dan in een lijst
komen die weer begint met het projectnummer en dan de rest van de regel erachter zet
(en voor elk product in de zoekopdracht een lijst maakt)
Ik heb bij deze twee echter geen idee hoe ik moet beginnen
Wie helpt mij???
1 2 3 | For i = 1 To Sheets.Count ActiveCell.Offset(i - 1, 0).Value = Sheets(i).Name Next i |
1 2 3 4 5 6 7 8 | Private Sub CommandButton4_Click() Sheets.Add Before:=Sheets("totaal") ActiveSheet.Name = "Projectenlijst" For i = 4 To Sheets.Count -1 ActiveCell.Offset(i - 1, 1).Value = Sheets(i).Name Next i |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Sub test() j = 0 For i = 4 To Sheets.Count -1 If Sheets(i).Name = "totaalblad" Or Sheets(i).Name = "basistabel" Then j = j Else ActiveCell.Offset(j, 1).Value = Sheets(i).Name j = j + 1 End If Next i End Sub |
1 2 3 4 5 6 7 | Select Case Sheets(i).Name Case "totaal", "test" j = j Case Else ActiveCell.Offset(j, 1).Value = Sheets(i).Name j = j + 1 End Select |
Ik ben er van uitgegaan dat de sheetnamenlijst in b1 en daaronder staat, anders in de activesheet regel b1 veranderen in de gewenste celquote:Op vrijdag 29 juni 2012 14:15 schreef xyntarsus het volgende:
ok thx, dit werkt, ik kan nu een projectenlijst maken en updaten
enige wat hij nu niet doet, is projecten die er niet meer zijn weghalen,
is er een mogelijkheid dat ik dta kan invoegen?
1 2 3 4 5 6 7 8 9 10 11 12 | Sub sheetbestaatnietmeer() On Error Resume Next ActiveSheet.Range("b1", ActiveSheet.Range("b1").End(xlDown)).Select For Each c In Selection If Sheets(c.Value).Name = "" Then c.EntireRow.Delete Next c On Error GoTo 0 End Sub |
Tja eigenlijk blijf ik wel van mening dat je eigenlijk al je data in 1 tabblad moet zetten. Wanneer je verschillende dwarsdoorsnedes wilt maken van je gegevens set kan je dat veel makkelijker via een pivot tabel regelen. Dan kan je tenminste zeggen ik wil alles van 1 project zien, of 1 product over alle projecten heen.quote:Op vrijdag 29 juni 2012 10:00 schreef xyntarsus het volgende:
voor het tweede deel van mijn vraag:
omdat ik ook een lijst per project wil kunnen uitdraaien, en ik iedere keer dezelfde tabel heb
voor een project (in de rijen de producten en in de kolommen 52 weken) wordt het heel onoverzichtelijk om dat in 1 blad te doen.
vandaar de keuze om voor elk project (pakweg 50 tegelijk meestal) een apart tabblad te maken, mijn 1e blad is dan een totaalblad dat optelt door de bladen heen.
Ik heb laatst een vergelijkbare opzet gezien, maar helaas krijg ik daar de code niet van :S
Dat is eigenlijk wel beter voor xyntarsus' gebruik. Maar ja, access is engquote:
Falerquote:Op maandag 2 juli 2012 08:20 schreef Deetch het volgende:
[..]
Dat is eigenlijk wel beter voor xyntarsus' gebruik. Maar ja, access is eng
zucht, IT op de werkplekquote:Op maandag 2 juli 2012 10:43 schreef xyntarsus het volgende:
access is niet eng hoor
maar acces is niet beschikbaar op het netwerk hier
moet het doen met word en excel....
en wat betreft de aparte tabbladen, ook dat is een soort van
'opgelegde eis' :S
pivot tables zouden inderdaad kunnen als alles in 1 blad stond.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Sub zoek(ByRef Sheet As Worksheet, ByRef Targetcell As Range, ByRef qrySearch As String, ByRef numcolumns As Integer) Dim zoekrange As Range, lastrow As Integer, cell As Range Set zoekrange = Sheet.Range("A:A")'Waar gaan we zoeken? Set cell = Sheet.Cells(1, 1)'De eerste cell in de kolom lastrow = 0 Do Set cell = zoekrange.Find(qrySearch, cell, xlValues, xlPart, xlByColumns, xlNext) If cell Is Nothing Then Exit Sub'zoekopdracht nergens gevonden If cell.Row < lastrow Then Exit Sub'voorbij einde van kolom lastrow = cell.Row Targetcell.Value = Sheet.Name If WorksheetFunction.CountA(Sheet.Rows(lastrow)) > 1 Then'Er zitten niet-lege cellen in deze rij Sheet.Range("A" & lastrow).Resize(ColumnSize:=numcolumns).Copy Targetcell.Offset(ColumnOffset:=1).Resize(ColumnSize:=numcolumns) Set Targetcell = Targetcell.Offset(Rowoffset:=1) End If Loop End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Sub test() dim rngDoelwit as Range dim strQry as string dim numCols as integer 'hoeveel kolommen moeten er gekopieerd worden numCols = 10 'Je zoekopdracht strQry = "1*" 'Waar moeten de resultaten komen set rngDoelwit = ActiveCell For i = 4 To Sheets.Count -1 If Sheets(i).Name <> "totaalblad" And Sheets(i).Name <> "basistabel" Then zoek Sheets(i), rngDoelwit, strQry, numCols End if Next i End Sub |
1 2 | item = textbox activesheet.name = ' "art"' &item' |
snel en makkelijk via VBA, maar het kan ook in excel (zij het omslachtigquote:Op vrijdag 6 juli 2012 11:29 schreef Pablooo het volgende:
Ik heb in excel een sheet met 2 lijsten naast elkaar
Lijst 1 heeft een aantal namen
Lijst 2 heeft getallen die bij de namen horen
In plaats van:
Banaan 2
Appel 3
Wil ik zo een lijst
Banaan
Banaan
Appel
Appel
Appel
Weet iemand hoe ik dit snel en makkelijk kan doen?
1 2 3 4 | Fruit Aantal Banaan 2 Appel 3 Peer 4 |
1 2 3 | sheetnaam = InputBox("Geef artikelnummer: ", "Artikelnummer") Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Name = "art." & sheetnaam |
Thanks!quote:
SPOILEROm 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.
quote:Op zondag 8 juli 2012 21:12 schreef DaFan het volgende:
Lukt je dat niet zelf adhv de formule die je net hebt gekregen?Ik had zelf inderdaad even verder moeten denken, maar heb er niet aangedacht om een ALS in een ALS te verwerken.SPOILEROm 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.
=ALS(Vragen!A1="";"Blanco";ALS(Vragen!A1=Antwoorden!A1;"Goed";"Fout"))
En het werkt.![]()
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |