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.Bij macro's die een bepaalde, merkbare, tijd nodig hebben om hun werk te doen is het van belang de gebruiker een idee te geven van wat er gebeurt, zeker met macro-optimalisatie aan kan het lijken alsof Excel is vastgelopen. Je kan bijvoorbeeld de statusbar een waarde geven, met eventueel een percentage van de reeds uitgevoerde code.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.Verder
Alle vorige topics zijn hier terug te vinden.
Nieuw topic? Haal de OP uit de wiki
[ Bericht 28% gewijzigd door qu63 op 30-01-2012 15:01:43 ]It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
Oh, helemaal overheen gelezen .quote:Op vrijdag 27 januari 2012 15:37 schreef qu63 het volgende:
[..]
Ik weet niet of dat ook werkt met je grafieklijn..
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | Sub PosNegChart() Dim i As Integer Dim j As Integer Dim x As Range Dim y As Range Dim xnew() As Double Dim ynew() As Double 'User input x en y waarden Set x = Application.InputBox("Kies range X-as", "FOK! Excel Help", , , , , , 8) Set y = Application.InputBox("Kies range Y-as", "FOK! Excel Help", , , , , , 8) ReDim xnew(0) ReDim ynew(0) For i = 1 To x.Rows.Count 'Arrays uitbreiden ReDim Preserve xnew(UBound(xnew) + 1) ReDim Preserve ynew(UBound(ynew) + 1) 'x en y waarden aan nieuw array toevoegen xnew(UBound(xnew)) = x(i, 1) ynew(UBound(ynew)) = y(i, 1) 'Bekende (x1,y1) en (x2,y2) voor bepaling 'Richtingscoëfficient en B uit y = ax + b A1 = x(i, 1) B1 = y(i, 1) A2 = x(i + 1, 1) B2 = y(i + 1, 1) 'berekening y = 0 (snijdpunt x-as) SP = -1 * (B2 - (A2 * (B2 - B1) / (A2 - A1))) / (B2 - B1) / (A2 - A1) 'test of snijden x-as plaatsvindt in deze verzameling If SP > A1 And SP < A2 Then 'uitbreiden nieuwe arrays en toevoegen y=0 snijpunten x as ReDim Preserve xnew(UBound(xnew) + 1) ReDim Preserve ynew(UBound(ynew) + 1) ynew(UBound(ynew)) = 0 xnew(UBound(xnew)) = SP End If Next 'actieve sheetnaam onthouden Dim Naam As String Naam = ActiveSheet.Name 'Geheime sheet aanmaken (eerst verwijderen) On Error Resume Next Application.DisplayAlerts = False Sheets("FOK").Delete Application.DisplayAlerts = True On Error GoTo 0 ActiveWorkbook.Sheets.Add ActiveSheet.Name = ("FOK") Sheets("FOK").Visible = False 'Nieuwe serie x en y waarden plaatsen in geheime sheet For i = 1 To UBound(xnew) Sheets("FOK").Cells(i, 1) = xnew(i) Sheets("FOK").Cells(i, 2) = ynew(i) Next 'Grafiek toevoegen Charts.Add ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).XValues = Sheets("FOK").Range(Sheets("FOK").Cells(LBound(xnew) + 1, 1), Sheets("FOK").Cells(UBound(xnew), 1)) ActiveChart.SeriesCollection(1).Values = Sheets("FOK").Range(Sheets("FOK").Cells(LBound(xnew) + 1, 2), Sheets("FOK").Cells(UBound(xnew), 2)) ActiveChart.ChartType = xlXYScatterSmoothNoMarkers ActiveChart.Location Where:=xlLocationAsObject, Name:=Naam For i = 1 To UBound(xnew) On Error Resume Next If ynew(i) <= 0 And ynew(i + 1) <= 0 Then ActiveChart.SeriesCollection(1).Points(i + 1).Border.ColorIndex = 3 End If Next ActiveChart.Legend.Delete End Sub |
1 2 3 4 | Dim x As Variant x = Range("A1:B4") MsgBox x(2,2) 'geeft waarde cell B2 Range("A12:B15") = x |
ok, dank je, ik zal het meenemen, ik dacht dat ik range moest gebruiken ivm met de input van user, ik had in het begin steeds fouten in de de uitvoering van code en kon niet vinden waar het lag. Uiteindelijk lag het niet aan de ranges maar heel ergens anders...quote:Op zondag 29 januari 2012 18:05 schreef ralfie het volgende:
@KritischeMassa
[ code verwijderd ]
Ranges kun je makkelijk converteren naar Variants, en omgekeerd. Gebruik is weinig anders als cells(2 argumenten, rij en kolom), maar snelheid is honderden malen sneller.
http://www.mediafire.com/?8kbsfc8v0mjyiffquote:Op maandag 30 januari 2012 13:04 schreef Basp1 het volgende:
Kan de handige sheet met macros (tip 4) ergens anders geupload worden, de mediafire link werkt niet meer.
quote:Op maandag 30 januari 2012 11:07 schreef KritischeMassa het volgende:
Maak een cel waarin je zet =min(c:c)
vervolgens doe je voorwaardelijke opmaak vergelijken met die celwaarde
zie de link aan Basp, het menu zit hierin met verklaringenquote:Op maandag 30 januari 2012 12:55 schreef Deetch het volgende:
@Qu63, hoe maak je zo'n extra menu? en kun je die ook installeerbaar maken?
geen probleemquote:
Oeps, dan heb ik niet de goeie gepakt.. Ga em ff updaten!quote:Op maandag 30 januari 2012 13:30 schreef KritischeMassa het volgende:
[..]
http://www.mediafire.com/?8kbsfc8v0mjyiff
Gek in de OP wiki had ik sowieso ook een ander link geplakt (ik had de OP geheel herschreven)
Geen idee, dat was een screenshot van KritischeMassaquote:Op maandag 30 januari 2012 12:55 schreef Deetch het volgende:
@Qu63, hoe maak je zo'n extra menu? en kun je die ook installeerbaar maken?
Zie OPquote:Op maandag 30 januari 2012 15:06 schreef Jesse_ het volgende:
Wat zitten er eigenlijk voor macro's in het macro bestand?
NOD32 gaat helemaal over zijn gerrit van deze linkquote:Op maandag 30 januari 2012 13:30 schreef KritischeMassa het volgende:
[..]
http://www.mediafire.com/?8kbsfc8v0mjyiff
Gek in de OP wiki had ik sowieso ook een ander link geplakt (ik had de OP geheel herschreven)
Dat is gek... er zit niets bijzonders in namelijkquote:Op maandag 30 januari 2012 15:14 schreef mirelia het volgende:
[..]
NOD32 gaat helemaal over zijn gerrit van deze link
Je kan vast wel een excel bestand koppelen aan een simpel batch filetje dat even een deltree doet oidquote:Op maandag 30 januari 2012 15:23 schreef KritischeMassa het volgende:
[..]
Dat is gek... er zit niets bijzonders in namelijk
Maar misschien worden VBA macro's per definitie als riskant beoordeeld?
Het is gewoon een zip file met hierin een sheet met macro's
Als je het niet vertrouwd kun je de sheet openen zonder macro's te activeren en de code bekijken
Ik kan leuk programmeren, maar een virus schrijven is een level of 100 te hoog gegrepen voor mij
Ja ok, maar dat batchfiletje moet ik er dan wel bij leverenquote:Op maandag 30 januari 2012 15:59 schreef Jesse_ het volgende:
[..]
Je kan vast wel een excel bestand koppelen aan een simpel batch filetje dat even een deltree doet oid
aha.. ok, dank jequote:Op maandag 30 januari 2012 18:42 schreef mirelia het volgende:
Ik kreeg de meldingen op de site, niet op het bestand zelf.
Daar is niets mee aan de hand, excuses voor de verwarring
=1,25/24quote:Op vrijdag 3 februari 2012 17:00 schreef Puckzzz het volgende:
Ik heb Excel 2010.
Taal geen idee.
Ik heb twee identieke tabbladen met als enig verschil dat ik in tabblad 2 zal werken. (maar de gegevens worden wel overgenomen in tab 1)
Daar komt in een kolom een tijdsnotatie te staan in decimalen. Dus voor 1 uur en een kwartier komt daar te staan 1.25. We ronden alles af naar kwartieren dus doen niet moeilijk met 5 minuutjes e.d.
Nu moet ik dus in diezelfde cel maar dan in tabblad1 dat decimale getal omzetten naar uren en minuten. daar moet dus komen te staan 1:15
Ik krijg het niet voor elkaar
tob al met spreadsheets sinds quatro proquote:Op vrijdag 3 februari 2012 17:10 schreef DaFan het volgende:
Lol ok dat is best makkelijk.
Kritisch owned dit topic
1 2 3 4 5 6 7 8 9 | Function SubT(Bereik As Variant, Term As String, TermKol as integer, OptelKol as integer) For i = 1 To Bereik.Count If Term = Bereik(i, TermKol) Then SubT = SubT + Bereik(i, OptelKol) End If Next End Function |
Mijn tweede suggestie is beter en sneller (UDF is traag)quote:Op vrijdag 3 februari 2012 20:07 schreef Sjaakbakfiets het volgende:
Dank voor je uitgebreide reactie, ik ga er mee aan de slag!
Waarom niet helemaal dan?quote:Op vrijdag 3 februari 2012 20:38 schreef Sjaakbakfiets het volgende:
Mocht je een oplossing hebben voor mijn volgend probleem dan hoor ik het graag
Ik heb 2 excelbestanden (respectievelijk 4000 en 8000 rijen), en in beide bestanden zit een kolom met codes. In totaal zijn ongeveer 3500 van deze codes hetzelfde. U raadt het al, deze 3500 codes (met bijbehorende informatie) moet ik filteren.
Weet jij/iemand hoe ik deze bestanden kan matchen?
Edit: grotendeels gelukt, dmv formule ALS(ISFOUT(VERT.ZOEKEN(A1;B:B;1;0));"";VERT.ZOEKEN(A1;B:B;1;0))
Macro/VBAquote:Op zondag 5 februari 2012 15:24 schreef elkravo het volgende:
Stel ik heb een vrij lange Excel lijst/tabel. Hierin staat een kolom met categoriën, bijvoorbeeld A, B, C.
Iedere rij/object heeft dus een categorie A B of C gekregen, hierin zit geen volgorde
Nu wil ik graag dat er ondere iedere rij van categorie B een extra lege regel wordt toegevoegd.
Beperking: ik kan/mag de lijst NIET sorteren omdat ik dan nooit meer terugsorteren kan naar de huidige volgorde.
Kan dit makkelijk, zonder dat ik handmatig rijen 1-voor-1 moet toevoegen?
Ik probeer zoveel mogelijk macro's VBA te vermijden omdat ik er geen verstand van heb. Liefst een simpel trucje. Het betreft een eenmalige verbouwing van een excel lijst waarbij ik onder bepaalde rijen van een categorie een extra regel moet toevoegen. En de lijst is 10.000 rijen...quote:Op zondag 5 februari 2012 15:27 schreef qu63 het volgende:
[..]
Macro/VBA
KritischeMassa zal zo wel langskomen om het uit te leggen
Of zoek uit hoe je t zelf kan doen, ik kan t namelijk ook (nog) niet goed (genoeg)
Ja ik zou wel VBA gebruikenquote:Op zondag 5 februari 2012 15:30 schreef elkravo het volgende:
[..]
Ik probeer zoveel mogelijk macro's VBA te vermijden omdat ik er geen verstand van heb. Liefst een simpel trucje. Het betreft een eenmalige verbouwing van een excel lijst waarbij ik onder bepaalde rijen van een categorie een extra regel moet toevoegen. En de lijst is 10.000 rijen...
1 2 3 4 5 6 7 8 9 10 11 12 | Sub InsertLines() Dim LastRow As Long With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With For i = LastRow To 1 Step -1 If ActiveSheet.Cells(i, 1) = "B" Then Rows(i + 1).Insert Shift:=xlDown End If Next End Sub |
Je kan altijd terug sorteren als je eerst een kolom maakt die gewoon telt van 1 tot eindequote:Op zondag 5 februari 2012 15:24 schreef elkravo het volgende:
Beperking: ik kan/mag de lijst NIET sorteren omdat ik dan nooit meer terugsorteren kan naar de huidige volgorde.
1 vraagje... in de code, waar staat de A voor in "LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ??quote:Op zondag 5 februari 2012 15:47 schreef KritischeMassa het volgende:
[..]
Ja ik zou wel VBA gebruiken
Maar ja
Het invoegen van regels is nu eenmaal niet mogelijk met een formule, of lastig.
Als je in VBA gaat klooien maak dan wel eerst een backup van de huidige situatie.
[ code verwijderd ]
Deze code in de betreffende sheet plakken (in het VBA scherm) en de macro draaien
Deze code gaat ervan uit dat de ABC in kolom A staat (activesheet.cells(i,1) = "B") de 1 in cells verwijzing slaat op kolom A dat kun je aanpassen
Hij kijkt in kolom A wat de laatste regel isquote:Op zondag 5 februari 2012 16:17 schreef elkravo het volgende:
[..]
1 vraagje... in de code, waar staat de A voor in "LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ??
1 2 3 4 5 6 7 | Sub InsertLines() For i = 32012 To 1 Step -1 If ActiveSheet.Cells(i, 1) = "B" Then Rows(i + 1).Insert Shift:=xlDown End If Next End Sub |
Ok... dan snap ik 'm... ben geen VBA held ;-)... normaal als ik een rij toevoeg, duurt dat 3 seconden ivm formuleberekeningen... de macro runt nu... zal wel even duren ;-)... laat m'n comp gewoonjakkeren... Hopelijk kom ik straks terug met goed het resultaat op m'n scherm.quote:Op zondag 5 februari 2012 16:20 schreef KritischeMassa het volgende:
[..]
Hij kijkt in kolom A wat de laatste regel is
Ik ben uitgegaan van kolom A
Je kan ook de lastrow opgeven als je die weet (bijvoorbeeld rij 32012)
Dan kan je volstaan met
[ code verwijderd ]
Ach had dat gezegdquote:Op zondag 5 februari 2012 16:26 schreef elkravo het volgende:
[..]
Ok... dan snap ik 'm... ben geen VBA held ;-)... normaal als ik een rij toevoeg, duurt dat 3 seconden ivm formuleberekeningen... de macro runt nu... zal wel even duren ;-)... laat m'n comp gewoonjakkeren... Hopelijk kom ik straks terug met goed het resultaat op m'n scherm.
Yep... dat doe ik sowieso... heb je die extra code... want heb het gevoel dat mijn comp het niet aankan... ;-)quote:Op zondag 5 februari 2012 16:28 schreef KritischeMassa het volgende:
[..]
Ach had dat gezegd
dan had ik wat regels code toegevoegd om de berekeningen uit te zetten...
Je hebt wel een back up gemaakt eerst?
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | Sub InsertLines() MOA Dim LastRow As Long With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With For i = LastRow To 1 Step -1 If ActiveSheet.Cells(i, 1) = "B" Then Rows(i + 1).Insert Shift:=xlDown End If Next MOU End Sub Sub MOA() 'MacroOptimalisatieAan On Error Resume Next Application.Cursor = xlWait Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual Application.DisplayAlerts = False End Sub Sub MOU() 'MacroOptimalisatieUit On Error Resume Next Application.Cursor = xlDefault Application.ScreenUpdating = True Application.StatusBar = False Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic Application.DisplayAlerts = True End Sub |
Dat werkte een stuk sneller... koste 5 minuutjes nu ;-)quote:Op zondag 5 februari 2012 16:43 schreef KritischeMassa het volgende:
Nee hij begint onderaan
ok
[ code verwijderd ]
mooiquote:Op zondag 5 februari 2012 17:03 schreef elkravo het volgende:
[..]
Dat werkte een stuk sneller... koste 5 minuutjes nu ;-)
VEEL DANK!
Mijn oorspronkelijke vraag is wel volledig opgelost, maar het totale probleem nog niet helemaalquote:
Die opmerking sloeg op jouw edit, je gaf aan dat het was gelukt maar niet helemaal. Wat lukt er dan niet?quote:Op zondag 5 februari 2012 17:14 schreef Sjaakbakfiets het volgende:
[..]
Mijn oorspronkelijke vraag is wel volledig opgelost, maar het totale probleem nog niet helemaal
Is een Gantt-chart geen optie?quote:Op zondag 5 februari 2012 19:00 schreef Corporaal het volgende:
Hoi,
Ik ben bezig met een spreadsheet voor de status van verschillende projecten. Om het geheel overzichtelijk te houden heb ik aan de status van de diverse projecten kleuren gekoppeld. Nu wil ik graag een losse legenda.Eigenlijk een soort pop up.
Kan dit in Excel?
MOA en MOUA zijn handig! Thankks!quote:Op zondag 5 februari 2012 16:43 schreef KritischeMassa het volgende:
Nee hij begint onderaan
ok
[ code verwijderd ]
Jouw versie is net wat uitgebreider dan wat ik zelf al had, die stopte en startte alleen het herberekenen namelijk..quote:Op maandag 6 februari 2012 06:21 schreef KritischeMassa het volgende:
Zorg wel dat je altijd MOU draait dus ook na fout afhandeling in macro code
Anders doet je excel het niet meer (na herstart van excel wel trouwens hoor, maar omdat screenupdate uitstaat lijkt excel stuk)
In de application.statusbar kun je communiceren met de gebruiker, bijvoorbeeld percentage klaar weergeven, of gewoon de waarde van teller i bijvoorbeeld. Zo heeft de gebruiker ook het idee dat er wat gebeurt.
Edit:
Als jouw macro afhankelijk is van tussentijdse celuitkomsten moet je wel eerst de moa draaien en dan weer mou anders staat er niets in de cel want de berekeningen staan uit
quote:Op maandag 6 februari 2012 10:35 schreef Deetch het volgende:
mooi verhaal KM, deze ga ik veel gebruiken. Nog wel even puzzelen hoe die statusbar werkt.
1 2 3 4 5 6 7 8 9 10 11 | Sub StatBarDemo() 'Een simpel tellertje in de statusbar weergeven For i = 0 To 32000 Application.StatusBar = "Percentage uitgevoerd: " & CInt((i / 32000) * 100) & "%" Next 'statusbar weer resetten Application.StatusBar = False End Sub |
1 2 3 4 5 6 7 8 9 | Sub StatBarDemo() 'Een soort van progress bar in de statusbar weergeven For i = 0 To 32000 Application.StatusBar = (CInt((i / 32000) * 100)) & "% " & String(CInt((i / 32000) * 10), ChrW(9609)) Next 'statusbar weer resetten Application.StatusBar = False End Sub |
Dat zou je zelf kunnen uitvinden aan de hand van reeds gepostte code, maar ok, ik ben de kwaadste nietquote:Op maandag 6 februari 2012 19:28 schreef elkravo het volgende:
Hoi KM,
Dit moet een eitje zijn voor je:
In een lijst van 10.000 items (lengte beperking), staan in kolom B datums.
Willekeurig ontbreken op bepaalde regels/rijen datums (lege cel).
Er is nooit sprake van twee lege regels/rijen.
Is er een leuk VBAtje waarbij van cel B5 t/m B10.005 wordt doorlopen en indien lege cel, de datum(-waarde (paste value)) van de bovenstaande wordt gekopieerd en geplakt? Zou me handmatig een-voor-een copy-pasten schelen.
Bij voorbaat dank!
1 2 3 4 5 6 7 8 9 10 11 | Sub AddDate() MOA 'sub MOA is een paar posts terug te vinden For i = 5 To 10005 If ActiveSheet.Cells(i, 2) = "" Then ActiveSheet.Cells(i, 2) = ActiveSheet.Cells(i - 1, 2) End If Next MOU 'sub MOU is een paar posts terug te vinden End Sub |
Nee je bent de kwaadste niet...quote:Op maandag 6 februari 2012 19:41 schreef KritischeMassa het volgende:
[..]
Dat zou je zelf kunnen uitvinden aan de hand van reeds gepostte code, maar ok, ik ben de kwaadste niet
Deze code in het werkblad of een module plakken
[ code verwijderd ]
Zoeken jullie nog collega's?quote:Op maandag 6 februari 2012 17:17 schreef KritischeMassa het volgende:
Uit irritatie hierover ben ik ooit zelf begonnen met het maken van die dingen, zo erg dat ik mijn eigen werkzaamheden zowat had weggeprogrammeerd. Tegenwoordig mag ik een deel van mijn tijd besteden aan dit soort crea-bea gehobby
Inderdaad, als A1 blad 1 gelijk is aan A23 blad 2 dan moet ook B1 met B23 worden vergeleken en zo verder want er kan een "afwijking" in de volgende kolommen voorkomen.quote:Op dinsdag 7 februari 2012 08:38 schreef KritischeMassa het volgende:
Het antwoord van Wokkel in jouw eerste topic voldeed niet?
Stel dat A1 blad 1 gelijk is aan A23 blad 2 moet dan ook B1 met B23 worden vergeleken? en zo verder voor C t/m H of is een vergelijking van A met A voldoende?
Hmm, dan zit ik met mijn opleiding Small Business & Retail Management niet echt goed geloof ikquote:Op dinsdag 7 februari 2012 06:37 schreef KritischeMassa het volgende:
[..]
Goeie meettechnici zijn schaars, dus ja die zeker
Nee. Wen er maar aanquote:Op dinsdag 7 februari 2012 11:31 schreef Setting_Sun het volgende:
Excel 2010 de look van Excel 2007 geven, kan dat?
gewoon even eraan wennen.quote:Op dinsdag 7 februari 2012 11:31 schreef Setting_Sun het volgende:
Excel 2010 de look van Excel 2007 geven, kan dat?
Werkte de tip van Wokkel?quote:Op dinsdag 7 februari 2012 08:52 schreef Frixel het volgende:
[..]
Inderdaad, als A1 blad 1 gelijk is aan A23 blad 2 dan moet ook B1 met B23 worden vergeleken en zo verder want er kan een "afwijking" in de volgende kolommen voorkomen.
dat maakt het zo ingewikkeld vrees ik.
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | Sub MergeFiles() If WB_1 = "" Then Exit Sub If WB_2 = "" Then Exit Sub MOA Workbooks.Open (WB_1) WB_1_Name = ActiveWorkbook.Name WB_1_LastCell = Workbooks(WB_1_Name).Sheets(1).Cells.SpecialCells(xlCellTypeLastCell).Row Workbooks.Open (WB_2) WB_2_Name = ActiveWorkbook.Name WB_2_LastCell = Workbooks(WB_2_Name).Sheets(1).Cells.SpecialCells(xlCellTypeLastCell).Row NewRow = WB_1_LastCell + 1 'regel i uit de slave file moet vergeleken worden met iedere regel j uit de masterfile 'als regel i voorkomt in de masterfile dan doet de routine niets 'als regel i niet voorkomt in de masterfile zet de routine regel i onder de masterfile For i = 1 To WB_2_LastCell Application.StatusBar = CInt(i / WB_2_LastCell * 100) & "% klaar" SlaveStr = "" MasterStr = "" UniqueRow = True For KolTel = 1 To 8 SlaveStr = SlaveStr & Workbooks(WB_2_Name).Sheets(1).Cells(i, KolTel) Next For j = 1 To WB_1_LastCell MasterStr = "" For KolTel = 1 To 8 MasterStr = MasterStr & Workbooks(WB_1_Name).Sheets(1).Cells(j, KolTel) Next If SlaveStr = MasterStr Then UniqueRow = False End If Next If UniqueRow = True Then For KolTel = 1 To 8 Workbooks(WB_1_Name).Sheets(1).Cells(NewRow, KolTel) = Workbooks(WB_2_Name).Sheets(1).Cells(i, KolTel) Next NewRow = NewRow + 1 End If Next Workbooks(WB_2_Name).Close False MOU End Sub |
Opgeslagen als .xlsm?quote:Op dinsdag 7 februari 2012 23:34 schreef elkravo het volgende:
Ik heb macro's verwijderd uit mijn spreadsheet.
Echter bij opstarten meld Excel "deze sheet bevat macro's"...
Wat ben ik vergeten?
Heb nog een oudere Excel 2003.... dus nog gewoon XLSquote:
Dan zou het opgeslagen kunnen zijn als .xlm, maar ik zie dat t al opgelost isquote:Op woensdag 8 februari 2012 18:28 schreef elkravo het volgende:
[..]
Heb nog een oudere Excel 2003.... dus nog gewoon XLS
Hoe kom ik van die macro melding af als ik geen macro in de sheet meen te hebben?
quote:Op donderdag 9 februari 2012 12:11 schreef actuarisje het volgende:
Hoihoi,
Ik heb een vraag over het kopieren van een tabblad. Ik heb een sheet met daarin een overzicht van een aantal medewerkers en een aantal 'template'-sheets voor elk functieprofiel. Ik wil nu met een druk op de knop voor alle medewerkers in de lijst een eigen tabblad aanmaken, gebaseerd op hun functieprofiel. Er wordt dus gekeken naar welk functieprofiel in de lijst staat en aan de hand daarvan wordt bepaald van welke 'template'-sheet er een kopie moet worden gemaakt.
Ik heb beovenstaande functionaliteit gebouwd mbv VBA en op zich gaat dat goed. Voor elke medewerker wordt een juist tabblad aangemaakt. Ik zi nu alleen dat het mis gaat bij het printen van deze tabbladen. Bij het kopieren van de template-sheet wordt wel netjes de info uit de sheet meegenomen (tekst, kolombreedtes, gekleurde cellen e.d), maar niet de pagina-instellingen (schaal, marges kop/voettekst e.d).
Mijn vraag is dus: Hoe kan ik mbv VBA een sheet zodanig kopieren dat ook de pagina-instellingen worden meegenomen?
Wat ik nu doe is eerste een nieuw, leeg tabblad aanmaken (Worksheets.Add) en dan de template daarheen copy-pasten. En daarbij gaat het blijkbaar mis, want de sheet krijgt dan de pagina-instellingen van een nieuwe, lege sheet en niet die van de kopieer-bron...
1 | sheet.Copy([before], [after]); |
Ken je de functie vert.zoeken()?quote:Op donderdag 9 februari 2012 17:08 schreef Barry87 het volgende:
Ik heb het volgende 'probleem':
In kolom C heb ik de namen van producten staan en in kolom H staat bij een gedeelte van deze producten de prijs. Bijvoorbeeld in cel C2 staat het product 'Measuring jug' in cel H2 staat de prijs van 4,60. Dit is prima.
Het probleem is echter dat in bijvoorbeeld C211 ook het product 'Measuring jug' staat maar de cel H211 is leeg.
Kan ik het niet zo instellen dat bij het invullen van 'Measuring jug' in cel C211 de prijs van 4,60 automatisch in cel H211 komt?
Hopelijk kan iemand mij helpen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Sub export() ' ' export Macro Range("A1:E50").Select Selection.Copy Workbooks.Add ActiveSheet.Paste ActiveWorkbook.SaveAs Filename:= _ "C:\Users\Elkravo\Desktop\File.csv" _ , FileFormat:=xlCSV, CreateBackup:=False Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True End Sub |
1 2 3 | fileSaveName = Application.GetSaveAsFilename( _ fileFilter:="csv Files (*.csv), *.csv") ActiveWorkbook.SaveAs (fileSaveName) |
Hoi KM, alvast bedankt, maar ik krijg het niet helemaal voor elkaar.quote:Op zaterdag 11 februari 2012 07:25 schreef KritischeMassa het volgende:
saveas = stringwaarde
Stringwaarde in simpel userform vragen
Je kan ook naar de directory browsen en de stringwaarde opbouwen als
stringwaarde = newdir & "Filename"
Of gewoon gebruiken wat er al is :
[ code verwijderd ]
Je kan eventueel ook gebruik maken van het pad ThisWorkbook.path & "\" & "NAAM"
Als je echter een Add-In gebruikt voor de code verwijst ThisWorkbook naar het pad van de Add-In en kun je beter ActiveWorkbook.path gebruiken
1 2 3 4 5 6 7 8 9 10 11 | Sub export() ' 'export Macro Range("A1:E50").Copy Workbooks.Add ActiveSheet.Paste fileSaveName = Application.GetSaveAsFilename(fileFilter:="csv Files (*.csv), *.csv") ActiveWorkbook.SaveAs (fileSaveName) Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 | Sub export() ' 'export Macro Range("A1:E50").Copy Workbooks.Add ActiveSheet.Paste fileSaveName = Application.GetSaveAsFilename(fileFilter:="csv Files (*.csv), *.csv") If fileSaveName = False Then Exit Sub ActiveWorkbook.SaveAs (fileSaveName) Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True End Sub |
Hoi KM,quote:Op zaterdag 11 februari 2012 13:57 schreef KritischeMassa het volgende:
[ code verwijderd ]
Als er geen bestandsnaam wordt gesuggereerd en je geeft niets op krijg je idd FALSE terug
dat kun je zo ondervangen:
[ code verwijderd ]
Wat gek, ik heb het getest in een willekruige sheet en daar werkte het gewoonquote:Op zaterdag 11 februari 2012 15:06 schreef elkravo het volgende:
[..]
Hoi KM,
Heb de tweede gedaan...
Hij vraagt om een naam, geeft CSV type aan. Echter, het resultaat is FALSE.xls ipv mijnnaam.csv
FALSE.xls is ook niet in csv format (te zien als ik deze open met kladblok).
1 2 3 | If fileSaveName = False Then Exit Sub msgbox filesavename ActiveWorkbook.SaveAs (fileSaveName) |
Hoi, ik zie geen verschil::quote:Op zaterdag 11 februari 2012 17:04 schreef KritischeMassa het volgende:
[..]
Wat gek, ik heb het getest in een willekruige sheet en daar werkte het gewoon
wat geeft een msgbox met de string erin?
dus zo:
[ code verwijderd ]
1 | , FileFormat:=xlCSV, |
Je had een messagebox moeten krijgen met het pad en de filenaamquote:Op zaterdag 11 februari 2012 18:05 schreef elkravo het volgende:
[..]
Hoi, ik zie geen verschil::
Wat nu gebeurt is...
Er wordt een nieuw excel-map gemaakt, en ik krijg deze pop-up:
[ afbeelding ]
Vervolgens zet ik er een nieuwe naam in... maar wordt het blad toch als FALSE.xls bewaard.
In de oorspronkelijke code staat o.a.:
[ code verwijderd ]
mist dit op een of andere manier niet?
Ok, de vba uit jouw file gebruikt... de file creatie werkt nu wel. Dank.quote:Op zaterdag 11 februari 2012 19:49 schreef KritischeMassa het volgende:
[..]
Je had een messagebox moeten krijgen met het pad en de filenaam
Zet die hele code nu eens in een nieuwe sheet en test het vanaf daar (opgeslagen en wel)
En nee , je geeft het filetype immers al op in het dialoog
hier de sheet die ik heb
In de bovenstaande sheet draai de macro "export"
1 2 3 4 5 | 1;2;3;4;5 q;q;q;q;q w;w;w;w;w 2;3;4;5;6 etc |
Ok, we komen verder iigquote:Op zaterdag 11 februari 2012 20:13 schreef elkravo het volgende:
[..]
Ok, de vba uit jouw file gebruikt... de file creatie werkt nu wel. Dank.
Alleen lijkt de format van de geëxporteerde file "intern" niet "comma separated".
Als ik de file open in kladblok verwacht ik (uit jouw file)
[ code verwijderd ]
Maar de uitkomst van de export maakt dit niet, bij openen in kladblok zie ik allerlei rare tekens, dus ik denk dat het toch nog op een of andere manier intern nog xls-format is of zo...
1 | ActiveWorkbook.SaveAs Filename:=filesavename, FileFormat:=xlCSV, CreateBackup:=False |
That was the missing piece! Hij doet 't!quote:Op zaterdag 11 februari 2012 20:20 schreef KritischeMassa het volgende:
[..]
Ok, we komen verder iig
dus het is geen csv als gehoopt...
hmmm
[ code verwijderd ]
en zo?
Ik was met opzet vrij cryptisch in mijn antwoorden, je was al zo lekker op wegquote:Op zaterdag 11 februari 2012 20:28 schreef elkravo het volgende:
[..]
That was the missing piece! Hij doet 't!
KM ik ben je enorm dankbaar!
En ik heb weer nieuwe dingen geleerd ook zo, waarvoor ook dank!
Hah nee dat was me niet opgevallen. Maar goed als ik die codes zie snap ik een en ander, en veel ook weer niet. Weet niet waar mensen dit soort spul leren, maar dit moet je dus gewoon leren, en lezen, het is niet altijd redeneerbaar. Lijkt me bij computertaal in het algemeen het geval.quote:Op zaterdag 11 februari 2012 20:31 schreef KritischeMassa het volgende:
[..]
Ik was met opzet vrij cryptisch in mijn antwoorden, je was al zo lekker op weg
Heb je gezien dat ik je "select" actie heb weggehaald in jouw code?
Als je gebruik maakt van macro opnemen zitten er een hoop select acties in, die zijn helemaal niet nodig en laten het scherm flikkeren. Je kan vrij direct ranges aanwijzen en manipuleren namelijk.
Basic is in al zijn vormen een bitchquote:Op zaterdag 11 februari 2012 20:57 schreef elkravo het volgende:
[..]
Hah nee dat was me niet opgevallen. Maar goed als ik die codes zie snap ik een en ander, en veel ook weer niet. Weet niet waar mensen dit soort spul leren, maar dit moet je dus gewoon leren, en lezen, het is niet altijd redeneerbaar. Lijkt me bij computertaal in het algemeen het geval.
1 | Range("I87:M138").Copy |
1 | Range("I86:M137").Copy |
1 | Range("I87:M137").Copy |
Ik vind jouw beschreven optie goed, ik wil dat een gebruiker niets hoeft te doen. En die regels met start en einde gaan niet weg.quote:Op zondag 12 februari 2012 19:34 schreef KritischeMassa het volgende:
Ja hoor
Je kan range en cells combineren
Cells kun je tellen -> Cells(i,j)
Door nu door de kolom heen te lopen kun je het start en einde van de range detecteren
pseudocode
For i = 1 to 32000
if cells(i,1)= "start" then
SelStart = i
end if
if cells(i,1) = "einde" then
SelEnd = i
exit for
end if
next
Nu weet je het begin en het eind
nu kun je de range specificeren
range(cells(StartSel,1),cells(EndSel,8))
de 1 en de 8 slaan op de kolomnummers
edit:
Dit gaat natuurlijk grandioos de mist in als je de regel met start of einde verwijderd
kun je niet beter de gebruiker de range laten selecteren met inputbox type 8? (zie post #4 in dit topic voor een voorbeeld)
haha dat was grappig he (gebeurt me regelmatig, en dan zoek ik me suf wat er nou mis isquote:Op zondag 12 februari 2012 20:08 schreef elkravo het volgende:
(ook als ik over StartSel en EndSel gebruik en niet SelStart hier en SelEnd )
quote:Op maandag 13 februari 2012 17:02 schreef mrrrtijn1975 het volgende:
Hi, ik zit met een uitdaging in Excel.
Stel ik wil dagelijks bijhouden in welk merk auto ik rijd en voer dat als volgt in :
[ afbeelding ]
Met de knop ' toevoegen aan lijst' wil ik dat een lijst wordt aangevuld, dat ziet er dan zo uit :
[ afbeelding ]
Hoe moet ik die knop programmeren? Is daar een formule voor, of moet ik met VB gaan werken, of kan ik eventueel met een macro werken? En hoe doe ik dat?
eeuwige roem voor degene die me hiermee kan helpen!
thx
1 2 3 4 5 6 7 8 9 10 11 12 13 | For i = 1 To 3200 'Kijken welke regel leeg is 'Uitgaande van de datum kolom If ActiveWorkbook.ActiveSheet.Cells(i, 1) = "" Then Exit For Next 'elke ingevoerde waarde in het formulier wordt in de sheet geplaatst ActiveWorkbook.ActiveSheet.Cells(i, 1) = DTPicker1.Value ActiveWorkbook.ActiveSheet.Cells(i, 2) = TextBox1.Value ActiveWorkbook.ActiveSheet.Cells(i, 3) = TextBox2.Value 'userform sluiten Unload Me |
Aantal.als een idee?quote:Op maandag 13 februari 2012 19:51 schreef teamlead het volgende:
iemand een idee?
Ik heb een sheet met 52 tabbladen (voor iedere week 1).
In zo'n tabblad staat in kolom A de naam van een medewerker en in kolom B tot en met L komt wel of geen "x" om bij te houden of iemand wel of niet in die week gecoacht is.
Nu wil ik een "overzichtspagina" hebben, waar ik in kolom A de naam van de medewerker heb staan en in kolom B (week 1) tot en met BA (week 52) het aantal "x" per medewerker voor de betreffende week.
Een aantal.arg per tabblad zou kunnen... als we iedere week dezelfde medewerkers zouden hebben. En dat is niet per definitie zo
Iemand een idee hoe ik een formule of macro kan gebruiken die kijkt naar de naam van de medewerker en dan per tabblad het aantal x-jes van die medewerker telt
1 2 3 | For i kan op cellen slaan maar ook op sheets (sheet(i)) Dan tellen in die sheets For j bijvoorbeeld Sheet(i).cells(j,1) Dan tellen in kolomen for k bijvoorbeeld sheet(i),cells(j,k) |
Google en KM zullen je helpenquote:Op maandag 13 februari 2012 20:02 schreef mrrrtijn1975 het volgende:
Hi Kritische massa, ik had nog niet aan deze oplossing gedacht om te werken met een user form. Ik moet me toch eens bezig gaan houden met VB, voor de eerste keer programmeren in 15 jaar. Het zal niet meevallen. ;-) thx!
met aantal.als loop ik er tegenaan dat ik óf de naam als criterium moet hanteren of de ingevulde "x" .quote:
macro knutselen dusquote:Macro kan ook
In dit topic zijn een aantal voorbeelden van code en tellers die je opweg kunnen helpen
[ code verwijderd ]
Probeer eens wat zou ik zeggen en als het echt niet lukt zie ik je hier vanzelf weer
Combinatie van vert.zoeken() en aantal.als()quote:Op maandag 13 februari 2012 19:51 schreef teamlead het volgende:
iemand een idee?
Ik heb een sheet met 52 tabbladen (voor iedere week 1).
In zo'n tabblad staat in kolom A de naam van een medewerker en in kolom B tot en met L komt wel of geen "x" om bij te houden of iemand wel of niet in die week gecoacht is.
Nu wil ik een "overzichtspagina" hebben, waar ik in kolom A de naam van de medewerker heb staan en in kolom B (week 1) tot en met BA (week 52) het aantal "x" per medewerker voor de betreffende week.
Een aantal.arg per tabblad zou kunnen... als we iedere week dezelfde medewerkers zouden hebben. En dat is niet per definitie zo
Iemand een idee hoe ik een formule of macro kan gebruiken die kijkt naar de naam van de medewerker en dan per tabblad het aantal x-jes van die medewerker telt
Kan ook wel met formule: =INT(A1)&":"&60*(A1-INT(A1))quote:Op dinsdag 14 februari 2012 16:40 schreef Puckzzz het volgende:
Ik heb 'm al
formule gewoon ='NL Maarssen (Stichtse Vecht)'!G3/24
en dan de cel eigenschap [uu]:mm
ik dacht ik deel 'm ff
Dat is wel heel ingewikkeld vind je niet?quote:Op dinsdag 14 februari 2012 18:51 schreef McGilles het volgende:
[..]
Kan ook wel met formule: =INT(A1)&":"&60*(A1-INT(A1))
nee, dat was toch iets anders. Dat zou de 24 uur niet overschrijden.quote:Op dinsdag 14 februari 2012 19:27 schreef KritischeMassa het volgende:
[..]
Dat is wel heel ingewikkeld vind je niet?
Wel grappig dat deze vraag voor de tweede keer van dezelfde user in dit deel voorkomt (zie post #29).
Of ging het nu om de opmaak >24 uur in [uu]?
Doe eens 63.25 uur delen door 24 en dan opmaken als dd-mm-jjjj uu:mm (aangepaste opmaak)quote:Op dinsdag 14 februari 2012 19:43 schreef Puckzzz het volgende:
[..]
nee, dat was toch iets anders. Dat zou de 24 uur niet overschrijden.
Je kan de veldopmaak veranderen naar datum, werkt dat met deze opmaak? Anders de punten vervangen door "-"quote:Op donderdag 16 februari 2012 09:00 schreef M_Schtoppel het volgende:
Beste Excel-specialisten,
Ik werk met Excel 2010 en ik zit met het volgende. Ik heb een veld dat er als volgt uit ziet:
01.01.2012 14:45:23
Dus het tijdstip en dag dat iets gebeurd is. Zo heb ik ruim 100.000 van dat soort velden onder elkaar.
De categorie staat nu op standaard. Hoe kan ik van zo'n veld een datumveld maken zonder tijd? Bestaat er een functie die die tijd eraf kan trimmen?
Hartelijk dank alvast!
als je het format naar "nummer" veranderd wordt het dan een getal?quote:Op donderdag 16 februari 2012 09:00 schreef M_Schtoppel het volgende:
Beste Excel-specialisten,
Ik werk met Excel 2010 en ik zit met het volgende. Ik heb een veld dat er als volgt uit ziet:
01.01.2012 14:45:23
Dus het tijdstip en dag dat iets gebeurd is. Zo heb ik ruim 100.000 van dat soort velden onder elkaar.
De categorie staat nu op standaard. Hoe kan ik van zo'n veld een datumveld maken zonder tijd? Bestaat er een functie die die tijd eraf kan trimmen?
Hartelijk dank alvast!
Het is ook van de ene kant een makkelijk functie maar er zitten nog wat retricties aan wat sommige mensen zich niet realiseren.quote:Op woensdag 15 februari 2012 12:27 schreef DaFan het volgende:
Typisch hoeveel vragen er zijn over VLOOKUP
dan is het dus een tekst en kun je idd mijn formule gebruiken.quote:Op donderdag 16 februari 2012 09:55 schreef M_Schtoppel het volgende:
Hallo mensen, nee, als ik de categorie op getal zet, verandert er niets, ook visueel niet.
En de categorie op datum zetten laat ook niets anders zien. Categorie aangepast heb ik ook geprobeerd maar ook daar geen sjoegem.
Ik kom deze datumnotatie vaak tegen in logfiles (durag/sick). Vervangen zoals ik aangaf zet het ook om naar datum/tijd.quote:Op donderdag 16 februari 2012 12:59 schreef Deetch het volgende:
[..]
dan is het dus een tekst en kun je idd mijn formule gebruiken.
Een handige tip ten aanzien van datums: Een datum is in excel gewoon een getal waarbij het cijfers achter de komma het deel van een dag is. Dus 12:00 is 0.5.
Als je data dus echt als data hebt staan kun je deze gewoon van elkaar aftrekken en afronden etc.
klopt maar dan moet je dus elke keer je ruwe data aanpassen terwijl je op deze manier een formule hebt die met je ruwe data gewoon aan de slag gaat.quote:Op vrijdag 17 februari 2012 07:16 schreef M_Schtoppel het volgende:
KritischeMassa heeft inderdaad gelijk. Zoeken en vervangen werkt prima! Daarna met control 1 de categorie op datum zetten en je hebt een normaal datumveld. Wel moet ik even testen of dit echt goed werkt want ik moet er draaitabellen van maken waar voor mijn werk financiele dingen aanhangen.
Bedankt!
Ach ik heb dat soort dingen in een importmacro gestopt, je kan er namelijk meteen integers vanmaken )hele dagen.quote:Op vrijdag 17 februari 2012 08:01 schreef Deetch het volgende:
[..]
klopt maar dan moet je dus elke keer je ruwe data aanpassen terwijl je op deze manier een formule hebt die met je ruwe data gewoon aan de slag gaat.
Verder verdwijnt het getal achter de komma niet als je van een datum tijd notatie alleen de datum laat zien via format. Dit kan vervelend zijn bij vlookup functies en misschien ook wel met draiabellen.
=ALS(E18="Boston";B26;ALS(F18="Ja";B27;B28)).quote:Op vrijdag 17 februari 2012 17:15 schreef OudeBok het volgende:
Ik zit met een probleempje. Ik wil twee ALS functies nesten, maar het lukt niet.
Ik heb nu dit staan : =ALS(E18="Boston";B26;B28;ALS(F18="Ja";B27;)).
Excel geeft dan de melding dat ik teveel argumenten heb gebruikt. Hoe los ik dit op ?
Aan de ene kant wel, maar aan de andere kant, heb zelf wiskunde gestudeerd en heb niks met programmeren dus over het algemeen schud ik 9 van de 10 keer binnen een minuut wel een wiskundige oplossing uit mijn mouw, neemt niet weg dat het soms omslachtig is en soms weer enorm handig en efficientquote:Op dinsdag 14 februari 2012 19:27 schreef KritischeMassa het volgende:
[..]
Dat is wel heel ingewikkeld vind je niet?
Wel grappig dat deze vraag voor de tweede keer van dezelfde user in dit deel voorkomt (zie post #29).
Of ging het nu om de opmaak >24 uur in [uu]?
Welke taal heb je?quote:Op zaterdag 18 februari 2012 15:36 schreef M_Schtoppel het volgende:
Ik heb de formule EXACT overgenomen en toch komt hij met een foutmeldig.
jouw oplossing was niet handig want die zorgt ervoor dat je niet meer kan rekenen met tijd omdat het een string wordt, als je de opmaak [hh] gebruikt dan blijft het legale tijd binnen excel.quote:Op zaterdag 18 februari 2012 15:11 schreef McGilles het volgende:
[..]
Aan de ene kant wel, maar aan de andere kant, heb zelf wiskunde gestudeerd en heb niks met programmeren dus over het algemeen schud ik 9 van de 10 keer binnen een minuut wel een wiskundige oplossing uit mijn mouw, neemt niet weg dat het soms omslachtig is en soms weer enorm handig en efficient
Oooh, ik keek puur en alleen naar de 'uitkomst', het is inderdaad een string ja.quote:Op zaterdag 18 februari 2012 15:41 schreef KritischeMassa het volgende:
[..]
jouw oplossing was niet handig want die zorgt ervoor dat je niet meer kan rekenen met tijd omdat het een string wordt, als je de opmaak [hh] gebruikt dan blijft het legale tijd binnen excel.
Ik zou gebruik maken van de volgende functie:quote:Op zaterdag 18 februari 2012 16:51 schreef M_Schtoppel het volgende:
Ik hoef niet te rekenen met die datum. Ik wil alleen een draaitabel hebben (ik weet hoe dat moet) met links een rij van unieke datums zodat ik kan zien hoe vaak iets op een datum gebeurd is.
Ikzelf vind de =countifs( functie van excel2007 fantastisch, ideaal in grote tabellen en zeer vaak te gebruiken.quote:Op zaterdag 18 februari 2012 17:14 schreef M_Schtoppel het volgende:
Wat vind je zelf de mooiste functie van Excel? Ik draaitabellen, daar werd ik toch wel even lyrisch van toen ik dat zag. Niet op de financiele manier, maar meer op de database manier, dus uittreksels van databases maken.
kun je beter sumproduct gebruiken, daar krijg ik nou een harde plasser vanquote:Op zaterdag 18 februari 2012 17:21 schreef McGilles het volgende:
[..]
Ikzelf vind de =countifs( functie van excel2007 fantastisch, ideaal in grote tabellen en zeer vaak te gebruiken.
In combinatie met jouw ava geeft dat een verontrustend beeld!quote:Op zondag 19 februari 2012 17:17 schreef Deetch het volgende:
[..]
kun je beter sumproduct gebruiken, daar krijg ik nou een harde plasser van
Ik gok een macro die door al je afbeeldingen loopt, maar dat zal KM vast beter uit kunnen leggenquote:Op maandag 20 februari 2012 09:19 schreef Twentsche_Ros het volgende:
Als je doet:
Invoegen
Vormen
En dan
Tekst bewerken
Kortom:
Je zet tekst in een "vorm". Een rechthoek bv. Of iets anders. Voor bv een systeemstroomschema.
Hoe kun je die dan vinden met Ctrl-F.
Dit kan namelijk wel met tekst in "opmerkingen".
En natuurlijk ook met tekst in iedere cel.
Maar net even niet met tekst in vormen.
Wie weet een oplossing?
Ja dat is de manierquote:Op maandag 20 februari 2012 10:00 schreef qu63 het volgende:
[..]
Ik gok een macro die door al je afbeeldingen loopt, maar dat zal KM vast beter uit kunnen leggen
Deze beter?quote:Op zondag 19 februari 2012 17:28 schreef qu63 het volgende:
[..]
In combinatie met jouw ava geeft dat een verontrustend beeld!
Ligt eraan wat je wilt. Groot nadeel van sumproduct is dat hij niet kan verwijzen naar hele kolommen (A:A bijvoorbeeld) maar altijd A1:A1000 wil. Countifs formules (en andere 2007 functies) kunnen dit welquote:Op zondag 19 februari 2012 17:17 schreef Deetch het volgende:
[..]
kun je beter sumproduct gebruiken, daar krijg ik nou een harde plasser van
Onwaar.quote:Op maandag 20 februari 2012 18:37 schreef McGilles het volgende:
[..]
Ligt eraan wat je wilt. Groot nadeel van sumproduct is dat hij niet kan verwijzen naar hele kolommen (A:A bijvoorbeeld) maar altijd A1:A1000 wil. Countifs formules (en andere 2007 functies) kunnen dit wel
Nou ok... was wel wat nieuw voor me en de code kan waarschijnlijk beter (for each textbox...)quote:Op maandag 20 februari 2012 09:19 schreef Twentsche_Ros het volgende:
Als je doet:
Invoegen
Vormen
En dan
Tekst bewerken
Kortom:
Je zet tekst in een "vorm". Een rechthoek bv. Of iets anders. Voor bv een systeemstroomschema.
Hoe kun je die dan vinden met Ctrl-F.
Dit kan namelijk wel met tekst in "opmerkingen".
En natuurlijk ook met tekst in iedere cel.
Maar net even niet met tekst in vormen.
Wie weet een oplossing?
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 28 29 | Private Sub CommandButton1_Click() Dim Gevonden As Boolean Gevonden = False If ActiveSheet.Shapes.count = 0 Then Exit Sub For i = 1 To ActiveSheet.Shapes.count On Error Resume Next If ActiveSheet.Shapes(i).TextFrame.Characters.Text = TextBox1.Value Then Gevonden = True Exit For End If Next On Error GoTo 0 If Gevonden = True Then ActiveSheet.Shapes(i).TopLeftCell.Select ActiveSheet.Shapes(i).Select End If Unload Me End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Sub T() ' ' T Macro ' ' Sneltoets: Ctrl+t ' Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1)), TrailingMinusNumbers:=True ChDir "C:\Users[..VERWIJDERD..]\Persoon1" ActiveWorkbook.SaveAs Filename:= _ "C:\Users\[..VERWIJDERD..]\Tijdspecificatie.xlsx", _ FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Sub T() ' ' T Macro ' ' Sneltoets: Ctrl+t ' Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1)), TrailingMinusNumbers:=True ActiveWorkbook.SaveAs Filename:= _ CurDir & "\Tijdspecificatie.xlsx", _ FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False End Sub |
Vul in B2:quote:Op dinsdag 21 februari 2012 22:04 schreef kanovinnie het volgende:
Nog een vraagje van mijn kant.
In cel A2 t/m A20 vul ik namen in.
Die zelfde namen wil ik in Cel B1 t/m U1 ingevuld krijgen. Dus in Cel B1 begin ik met "=A2". Cel C1 krijgt"=A3".
Dit omdat de namen elke keer anders zijn.
Maar hoe kan ik het voor elkaar krijgen om het verder te slepen? Nu heb ik alles met de hand ingevuld omdat Excel 't niet kan. Of ik doe iets verkeerd. Dat lijkt me waarschijnlijker
Tot nu toe heb ik dit..quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Sub Macro1() ' ' Macro1 Macro ' ' Sneltoets: Ctrl+t ' Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1)), TrailingMinusNumbers:=True Range("C3").Select Columns("A:A").EntireColumn.AutoFit Columns("C:C").EntireColumn.AutoFit Columns("D:D").EntireColumn.AutoFit Columns("G:G").EntireColumn.AutoFit Columns("H:H").EntireColumn.AutoFit ChDir "C:\Users\crossover\Documents\My Dropbox\xOverig\ZO\" ActiveWorkbook.SaveAs Filename:= _ "C:\Users\crossover\Documents\My Dropbox\xOverig\ZO\Tijdspecificatie.xlsx" _ , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False End Sub |
Als je dit topic had doorgelezen had je gezien dat deze vraag al een keer voorbij was gekomen maar dan met een CSV functie, lees maar vanaf deze post verderquote:
quote:Op vrijdag 10 februari 2012 20:13 schreef elkravo het volgende:
Ik exporteer een deel van een Excel blad met onderstaande VBA naar een csv-file.
Gevonden op internet, en werkt goed.
Toch ben ik over een ding niet tevreden. In deze export-VBA zit ingebakken een vaste plaats op de harde schijf... in dit geval: C:\Users\Elkravo\Desktop\File.csv
Is deze opdracht te vervangen door iets waarbij ik zelf een plaats kan aanwijzen in het proces.
Deze vraag is ingegeven door het feit dat meerdere personen het sheet op eigen computer gebruiken, en dus de macro niet te specifiek een locatie moet aanwijzen.
[ code verwijderd ]
1 2 | bestandsnaam = ThisWorkbook.Path & "\Tijdspecificatie.xlsx" ActiveWorkbook.SaveAs Filename:=bestandsnaam, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False |
Wat doet die CreateBackup:=False?quote:Op woensdag 22 februari 2012 13:39 schreef Deetch het volgende:
verwijderer de CHDir regel maar helemaal het padnaam zit nl. al in je saveas functie verwerkt.
Eerst stop je het pad en de bestandsnaam in een variabele "bestandsnaam" en dan sla je je bestand op
[ code verwijderd ]
geen idee, deze zit er standaadr achter als je de save as dialoog opneemt.quote:
Hoe moet ik het pad en de bestandsnaam in de variabele 'bestandsnaam' doen?quote:Op woensdag 22 februari 2012 13:39 schreef Deetch het volgende:
verwijderer de CHDir regel maar helemaal het padnaam zit nl. al in je saveas functie verwerkt.
Eerst stop je het pad en de bestandsnaam in een variabele "bestandsnaam" en dan sla je je bestand op
[ code verwijderd ]
Ja ik weet niet maar als ik jouw code draai zonder het hele save gebeuren krijg ik ook een berg foutmeldingen, dus de fout zit voordat je opslaat.quote:Op woensdag 22 februari 2012 12:08 schreef crossover het volgende:
Sorry hoor, maar ik heb overal gezocht, en bij alles wat ik lees gaat het mis bij het toepassen op mijn situatie. Ik krijg allerlei foutmeldingen en moet telkens opnieuw beginnen, dus als je zegt dat ik gewoon even dit topic had moeten lezen, vind ik dat niet redelijk want dan had ik overal in deze reeks van 30 kunnen gaan zoeken. Waarschijnlijk is mijn vraag voor ervaren gebruikers een eitje. Ook bij het voorbeeld wat je hierboven aangeeft, KM, lukt het me niet om het in mijn code toe te passen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Sub Macro1() ' ' Macro1 Macro' ' Sneltoets: Ctrl+t' Columns("A:A").Select 'hier gaat het mis Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1)), TrailingMinusNumbers:=True 'einde foute code Range("C3").Select Columns("A:A").EntireColumn.AutoFit Columns("C:C").EntireColumn.AutoFit Columns("D:D").EntireColumn.AutoFit Columns("G:G").EntireColumn.AutoFit Columns("H:H").EntireColumn.AutoFit End Sub |
ja je kan natuurlijk een stukje code draaien dat elke keer als het tabblad wordt geselecteerd wordt gedraaid:quote:Op woensdag 22 februari 2012 08:54 schreef Jeroen_S. het volgende:
Ik heb momenteel een bestand bestaande uit 4 pagina's.
Nu wil ik graag op elke pagina ons bedrijfslogo hebben staan, maar dan wel
natuurlijk op elke pagina op exact dezelfde positie. Kan ik dat ergens instellen?
Bij Powerpoint kun je bijvoorbeeld een logo plakken en dan plakt ie hem steeds op dezelfde positie maar bij Excel heb ik dat nog niet gevonden!
Who can help me?
Cheers,
1 2 3 4 | Private Sub Worksheet_Activate() ActiveSheet.Shapes("Picture 1").Left = 1 ActiveSheet.Shapes("Picture 1").Top = 1 End Sub |
Heb jij code om een gerunde macro te undo-en? Die wil ik wel!!!quote:Op woensdag 22 februari 2012 19:42 schreef KritischeMassa het volgende:
[..]
ja je kan natuurlijk een stukje code draaien dat elke keer als het tabblad wordt geselecteerd wordt gedraaid:
deze code zet het plaatje netjes in de linkerbovenhoek
[ code verwijderd ]
Je kan ook de code draaien bij openen van de worksheet en zo alle bladen langslopen
Het voordeel daarvan is dat niet je undostack continu leeg is (elke keer als je een stukje vbs code draait is je undostack leeg. Ik heb wel code om daar weer wat mee te doen maar dta voert wat ver in dit kader...
in plaats van left en top kun je ook wat aanklooien met topleftcell...
Ik heb een app waarmee ik mijn gewerkte uren bijhoud. Dat wordt geexporteerd als .csv, ik wil dat bestand opslaan als .xlx met een andere naam en daarbij de datum/tijd. Ik heb 'm zo opgenomen, en dat stukje werkte telkens eigenlijk goed.quote:Op woensdag 22 februari 2012 19:26 schreef KritischeMassa het volgende:
[..]
Ja ik weet niet maar als ik jouw code draai zonder het hele save gebeuren krijg ik ook een berg foutmeldingen, dus de fout zit voordat je opslaat.
Het is sowieso een beetje een wazige macro die je daar hebt, heb je die zo opgenomen?
Wat wil je dat hij doet?
Jouw probleem zit hem niet in het opslaan iig, de code die we je daarvoor hebben aangegeven klopt gewoon en werkt in alle gevallen (test het maar znder de code die ik hieronder quote en die foutmeldingen geeft.
Sowieso, die hele record functie van excel is bagger
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Sub Macro1() ' ' Macro1 Macro ' ' Sneltoets: Ctrl+t ' Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1)), TrailingMinusNumbers:=True Columns("A:A").EntireColumn.AutoFit Columns("G:G").EntireColumn.AutoFit Columns("H:H").EntireColumn.AutoFit Columns("J:J").EntireColumn.AutoFit bestandsnaam = ThisWorkbook.Path & "/Tijdspecificatie" & Range("G2").Value & ".xls" ActiveWorkbook.SaveAs Filename:=bestandsnaam, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False End Sub |
"/Tijdspecificatie"quote:Op donderdag 23 februari 2012 14:59 schreef crossover het volgende:
Tot nu werkt alles prima, ook nadat ik (helemaal zelf! ) een functie heb toegevoegd in de bestandsnaam. Echter, wat ik in eerste instantie wilde, werkt nog niet. Het bestand wordt opgeslagen in de map XLSTART (C:\Users\crossover\AppData\Roaming\Microsoft\Excel\XLSTART).
M'n code is nu:
[ code verwijderd ]
Ook zonder mijn toevoeging werkt het niet... nog tips?
Geen verschil..quote:Op donderdag 23 februari 2012 15:25 schreef KritischeMassa het volgende:
[..]
"/Tijdspecificatie"
"\Tijdspecificatie" een idee?
Gewoon een naam. Dus enkel letters..quote:Op donderdag 23 februari 2012 18:56 schreef KritischeMassa het volgende:
Wat staat er in Range("G2") ? als dit een tijd is gaat het mis he, je kan geen bestandsnamen met : erin maken
Ja maar dan is die 2e geen 300% maar 200%. 6 is immers 4 meer dan 2 dus 200% meer.quote:Op donderdag 23 februari 2012 18:57 schreef E-lientje het volgende:
@Deetch, zo liep ik ook te rommelen, maar dat is het dus niet.
Als iets 40% is, is het 60% minder dan 100%, dus is het -60%. Dat is ook de bedoeling van de "-".
150% = +50%
A=40% B=120% C=-66,67% (en niet -33,33%). Snappie?
Maar hoe zet ik dat in een formule?
voeg na het definieren van je bestandnaam de volgende regel code toe:quote:Op donderdag 23 februari 2012 19:01 schreef crossover het volgende:
[..]
Gewoon een naam. Dus enkel letters..
1 2 3 | A B C 3 1 Dit moet dus 2 worden 2 2 Dit mag dus 1 of 3 worden |
Je kan via een macro iets doen als:quote:Op zaterdag 25 februari 2012 19:40 schreef GuitarJJ het volgende:
Weet iemand of je uitzonderingen kan toevoegen aan de aselecttussen-functie in Excel?
Situatie:
In cel A1 wordt een random nummer tussen de 1 en 3 geproduceerd.
In cel B1 wordt ook een random nummer tussen de 1 en 3 geproduceerd. Deze kan en mag hetzelfde zijn als die in cel A1.
In cel C1 moet ook een random nummer tussen de 1 en 3 geproduceerd worden. Echter, deze mag niet gelijk zijn aan de nummers in A1 en B1.
[ code verwijderd ]
edit: inmiddels al een oplossing gevonden.
Bedankt! Ik heb het alleen al op de volgende manier opgelost.quote:Op zondag 26 februari 2012 11:37 schreef McGilles het volgende:
[..]
Je kan via een macro iets doen als:
Sub test()
Do
Dim minNum As Integer
minNum = 1
Dim maxNum As Integer
maxNum = 8
Dim xrand As Integer
Dim i As Integer
For i = minNum To maxNum
xrand = Int(Rnd() * maxNum) + minNum
Cells(3, 2 + i).Value = xrand
Next i
Loop Until Cells(1, 3).Value = "True"
End Sub
Dan in cel C1 formule zetten die true weergeeft wanneer de waarden anders zijn.
Ik had er eerst één grote formule van gemaakt, maar die bevatte te veel geneste niveaus.quote:=(ALS(((B9=1)*EN(C9=1));ASELECTTUSSEN(2;3);N9))
=(ALS(((B9=1)*EN(C9=2));3;O9))
=(ALS(((B9=1)*EN(C9=3));2;P9))
=(ALS(((B9=2)*EN(C9=1));3;Q9))
=(ALS(((B9=2)*EN(C9=2));(ALS((ASELECTTUSSEN(1;2)=2);3;1));R9))
=(ALS(((B9=2)*EN(C9=3));1;S9))
=(ALS(((B9=3)*EN(C9=1));2;T9))
=(ALS(((B9=3)*EN(C9=2));1;U9))
=(ALS(((B9=3)*EN(C9=3));ASELECTTUSSEN(1;2);M9))
Bijlages doen t hier niet op Fokquote:Op maandag 27 februari 2012 12:16 schreef Frixel het volgende:
Nou 3x is scheepsrecht. Ik had eerder vraag (tot 2x toe) in het verkeerde forum gepost.
Excuus.
maar mijn vraag dan voor in het grote excel topic:
Kan ik met een VBA code data wat verspreid staat over meerder tabbladen importeren/kopieren naar een nieuw leeg tabblad zodat daar alles netjes onder elkaar komt?
Zie Bijlage.
Ja maar lukt totaal niet omdat ieder tabblad een andere naam heeft en de nieuwe gegevens onder de voorgaande moeten komen te staan.quote:Op maandag 27 februari 2012 12:23 schreef qu63 het volgende:
[..]
Bijlages doen t hier niet op Fok
Heb je zelf al een poging gedaan met VBA?
1 | thisworkbook.sheets(i) '(of activeworkbook) |
Je zat in het goede forum (Digital Corner), je had alleen een nieuw topic aangemaakt terwijl we voor Excel dus een apart verzameltopic hebben .quote:Op maandag 27 februari 2012 12:16 schreef Frixel het volgende:
Nou 3x is scheepsrecht. Ik had eerder vraag (tot 2x toe) in het verkeerde forum gepost.
Excuus.
Klinkt spannend! http://nl.wikipedia.org/wiki/CIELABquote:Op maandag 27 februari 2012 17:06 schreef Reflectionne het volgende:
Hoi ervaringsdeskundigen
Heeft iemand van jullie ervaring met CIE lab grafieken? Ik heb wat L*, a*, b*, C* en h waarden en die wil ik graag weergeven in een Excel grafiek. (Ze gaan in verschillende richtingen en het liefst zou ik ook de kleur er bij zien..)
Is dit mogelijk? Iemand een idee?
Volgens WIKI erg lastig: http://en.wikipedia.org/wiki/Lab_color_spacequote:Op maandag 27 februari 2012 17:06 schreef Reflectionne het volgende:
Hoi ervaringsdeskundigen
Heeft iemand van jullie ervaring met CIE lab grafieken? Ik heb wat L*, a*, b*, C* en h waarden en die wil ik graag weergeven in een Excel grafiek. (Ze gaan in verschillende richtingen en het liefst zou ik ook de kleur er bij zien..)
Is dit mogelijk? Iemand een idee?
Ik vraag me vooral af of Excel wel zulke grafieken kan tekenen qua kleuren:quote:Op maandag 27 februari 2012 22:11 schreef Deetch het volgende:
[..]
Volgens WIKI erg lastig: http://en.wikipedia.org/wiki/Lab_color_space
Als je de formule hebt dan kan excel die berekening wel voor je doen.
Eigenschappen van de cel, bescherming, geblokkerd aanvinken en de sheet beveiligen met wachtwoordquote:Op dinsdag 28 februari 2012 10:48 schreef dekilo het volgende:
Om de een of andere reden werken wij met een excel sheet waar alle vergader ruimtes instaan.
je moet een vergader ruimte boeken (tijd boeken) via excel.
Je raadt het al dit gaat dus herhaaldelijk mis.
Vandaag weer ik loop een ruimte in die ik geboekt heb en jawel hoor bezet door een andere groep.
Is er een mogelijkheid om bv 3 cellen te beveiligen in een sheet met password en dat alle andere cellen nog gewoon overschreven kunnen worden?
Ja. Celeigenschappen -> Bescherming en doe wat daar staatquote:Op dinsdag 28 februari 2012 10:48 schreef dekilo het volgende:
Om de een of andere reden werken wij met een excel sheet waar alle vergader ruimtes instaan.
je moet een vergader ruimte boeken (tijd boeken) via excel.
Je raadt het al dit gaat dus herhaaldelijk mis.
Vandaag weer ik loop een ruimte in die ik geboekt heb en jawel hoor bezet door een andere groep.
Is er een mogelijkheid om bv 3 cellen te beveiligen in een sheet met password en dat alle andere cellen nog gewoon overschreven kunnen worden?
Damn, als ik m'n typo niet verbeterd had was ik sneller!quote:Op dinsdag 28 februari 2012 11:18 schreef KritischeMassa het volgende:
[..]
Eigenschappen van de cel, bescherming, geblokkerd aanvinken en de sheet beveiligen met wachtwoord
Hmm dankje.. Gaat denk ik niet lukken in Excel dus, jammer.quote:Op maandag 27 februari 2012 22:18 schreef qu63 het volgende:
[..]
Ik vraag me vooral af of Excel wel zulke grafieken kan tekenen qua kleuren:
[ afbeelding ]
3 kolommen toevoegen, waarbij je waarden in D staan:quote:Op dinsdag 28 februari 2012 20:58 schreef Days-Of-Wild het volgende:
Weet iemand hoe ik de een na grootste unieke waarde met een formule uit een reeks kan halen?
Stel reeks:
5
18
16
18
12
7
9
18
18 komt dus meerdere keren voor, maar ik wil weten wat de eerstvolgende grootste is, in deze reeks dus 16. met LARGE kun je de x-grootste opgeven, maar de reeks groeit en ik weet vantevoren niet hoevaak de hoogste waarde voor gaat komen.
Sorteren is geen optie, de reeks moet onveranderd zo blijven.
Ik gebruik Excel 2003.
Alvast bedankt.
Dank je wel!quote:Op woensdag 29 februari 2012 00:17 schreef McGilles het volgende:
[..]
3 kolommen toevoegen, waarbij je waarden in D staan:
1 : Nummering, beginnen met 1, 2, 3, enz tot eind
2 : =COUNTIF(C:C;C1) -> slepen
3 : =LARGE(D:D;A1) -> slepen
Dan =VLOOKUP(1;B:C;2;FALSE)
In D1: =VERT.ZOEKEN(A1;$E$1:$F$365;2;ONWAAR)quote:Op woensdag 29 februari 2012 21:34 schreef wdvanoyen het volgende:
Ok, dit maal zit ik met een zeer gedetailleerde vraag en ik betwijfel of het überhaupt wel mogelijk is.
Ik zit hier met enkele kolommen met gegevens in de vorm van getallen. De eerste gegevens uit de eerste 3 kolommen zijn afkomstig van bron 1, de laatste 2 kolommen zijn afkomstig van bron 2. Ik wil kolom F verplaatsen naar kolom D. Maar de gegevens uit kolom F moeten naar het rij nummer dat in kolom E staat.
Afbeelding:
http://img856.imageshack.us/img856/7159/extump.png (copy/paste deze link) (copy/paste deze link)
Dus de waarde in F1 moet naar rij nummer 149, en de waarde in F2 moet naar rijnummer 173.
Hoe kan ik dit automatisch door Excel laten doen? Het zijn 365 waarden, en als dat handmatig moet duurt het nog wel even...
A:A is niet even groot (lang) als A1:O152..quote:Op donderdag 1 maart 2012 11:59 schreef Darkzell het volgende:
Ik heb een probleem met vert.zoeken. Ik heb 2 excel bestanden, één is een grote ledenlijst met daarin verscheidene gegevens, de andere is een simpele tabel met daarin lidnummer, naam, en een lege kolom. Ik wil dat via de lidnummers automatisch de lege kolom wordt gevuld met de bijbehorende e-mailadressen uit de ledenlijst.
Ik heb de volgende formule: =VERT.ZOEKEN(A:A;[Leden.xls]Leden!$A$1:$O$152;[Leden.xls]Leden!$M:$M), echter blijft er als uitkomst #NB komen.
(A:A is de kolom met lidnummers, in kolom M van leden.xls staan de emailadressen)
Iemand een idee hoe dit op te lossen?
Alvast bedankt
Maar wat als dan de 1 na grootste waarde ook vaker voorkomt, dan krijg jij die met jouw formule wel terug en dat is toch niet de bedoeling?quote:Op woensdag 29 februari 2012 09:02 schreef Days-Of-Wild het volgende:
[..]
Dank je wel!
Ik heb hem iets anders gedaan, zonder VLOOKUP. Ik heb met MAX de hoogste waarde uit de reeks gehaald, vervolgens met COUNTIF het aantal malen geteld dat deze waarde voorkomt en met LARGE gezocht naar de volgende hoogste waarde (resultaat COUNTIF + 1 ). En dat in één cel/formule gepropt.
nou zo dusquote:
Bedoel je gewoon zoiets:quote:Op vrijdag 2 maart 2012 18:08 schreef Oksel het volgende:
Ik heb echt een simpele vraag denk ik.
Ik heb een pulldown dingetje met 5 waardes (25, 35, 50, 63, 80).
Aan elke waarde zit een drietal andere waardes vast, die horen bij elkaar. Als ik 25 selecteer, moet er in een ander vakje bijv. 13000 tevoorschijn komen, in het vakje daaronder 200, etc.
Ik wilde dat met een IF functie doen, maar hoe kan ik in die IF functie een waarde uit een andere cel weergeven in die cel? Ofzo? Ik weet zeker dat er zoooooooo'n simpele oplossing voor is.. maar hoe? Thnx
Jaquote:Op vrijdag 2 maart 2012 18:22 schreef Oksel het volgende:
Dat ziet er wel heel simpel uit. Werkt dat?
je kan bijvoorbeeld een tabel maken met de waarden uit het pulldown menu in de eerste kolom, de kolom ernaast waarde 1, de kolom daarnaast waarde 2 etc.quote:Op vrijdag 2 maart 2012 18:23 schreef Jesse_ het volgende:
[..]
Ja
Maar er zitten hier wel mensen die vast elegantere oplossingen kunnen bedenken.
Voor type XY (Scatter) kiezen?quote:Op zaterdag 3 maart 2012 16:23 schreef nieknikey het volgende:
Ok ik zit met een waar probleem. Ik wil een grafiek laten tekenen die er ongeveer zo uit komt te zien:
[ afbeelding ]
De gegevens waar ik over beschik, zijn ook gegevens over CO2, temperatuur en Jaren geleden.
screenshot: [ http://img51.imageshack.us/img51/2585/grafiek.png (copy/paste deze link) ]
Kolom B bevat het aantal jaren geleden,
Kolom C bevat relatieve temperatuursverandering
Kolom D bevat gegevens over CO2 concentratie. Er zijn slechts van een paar rijen gegevens over CO2 bekend, ik weet niet hoe ik dit in een grafiek moet laten schetsen. Ik zit er nu al 2 en een half uur op, en het lukt me maar niet. Het is dus de bedoeling om op de X-as de tijd te zetten, het liefst van rechts naar links (links is ouder). Op de y-as moet CO2 en temperatuur uitgezet worden.
Gaat dit in Excel 2010, en zo ja, hoe?
quote:Op zaterdag 3 maart 2012 16:35 schreef nieknikey het volgende:
Ik heb het even opgezocht, ik heb nu het aantal Jaren geleden op de X as staan (correct) en de relatieve temperatuur op de Y-as. Op welke manier:
- kan ik een 2e reeks gegevens hieraan toevoegen? (de CO2 gegevens)
quote:- kan ik de grafiek omkeren, zodat het heden rechts in plaats van links ligt
Delen door 1000 en erbij zetten 'x 1000'? Of 10.000, of wat ook maar goed past.quote:Op zaterdag 3 maart 2012 17:00 schreef nieknikey het volgende:
Je fragment eindigd exact waar het interessant wordt. De grafieken die je liet zien, wou ik eigenlijk maken ja. Echter gebruikt de data van CO2 een hele andere schaal en immens grotere getallen, het liefst wil ik de 2 grafieken dicht bij elkaar hebben liggen, dus dat ik rechts en links een andere schaalverdeling heb. Hoe kan ik dit maken?
Dan maak je er 19 tot 31 van en zet je er x10 bij.quote:Op zaterdag 3 maart 2012 17:18 schreef nieknikey het volgende:
Dan heb ik nog altijd 2 y-achtige assen nodig waar ik schaalverdeling op kwijt moet kunnen. De gegevens van CO2 schommelen namelijk tussen de 190 en 310, en de gegevens van temperatuur tussen de -10 en +10.
Gewoon een extra kolom selecteren en dan Chart/Grafiek kiezen.quote:Op zaterdag 3 maart 2012 17:34 schreef nieknikey het volgende:
Nee, ik kom er niet uit hoe ik een tweede schaalverdeling aan kan leggen.
Kan je dan niet beter iets met de API van Google Maps doen?quote:Op maandag 5 maart 2012 15:06 schreef Cue_ het volgende:
Geen idee of jullie mij hiermee kunnen helpen, maar het heeft wel betrekking op rekenkunsten
Ik heb een excellijst/overzicht met GPS coordinaten van iets.
Van elke wil ik ten eerste een longitude en latitude van hebben. Dit zou ik online 1 voor 1 kunnen invoeren op een site, maar ik heb iets te veel data daarvoor.
Daarnaast wil ik dat als ik dat punt heb in long/lat, vervolgens de long/lat van een vierkant omheen met daarin als middenpunt dus die spot. Waarvan de linker en rechterkant bv 150 meter betreffen en ook de boven/onderzijde van het vierkant.
Iemand enig idee mbt rekenkunsten die hievoor gebruikt kunnen worden?
Doen doen we wel al wat mee. Het tonen van de diverse punten op de mooie wereldkaart.quote:Op maandag 5 maart 2012 15:08 schreef qu63 het volgende:
Kan je dan niet beter iets met de API van Google Maps doen?
1 | =LEFT(A1,FIND(" ",A1)-1)&CHAR(176)&" "&MID(A1,FIND(" ",A1)+1,FIND(".",A1)-FIND(" ",A1)-1)&"' "&60*RIGHT(A1,LEN(A1)-FIND(".",A1)+1)&"""" |
1 | =LEFT(A1,FIND("°",A1)-1)+(MID(A1,FIND("°",A1)+2,FIND("'",A1)-FIND("°",A1)-2)/60)+MID(A1,FIND("'",A1)+2,FIND(CHAR(34),A1)-FIND("'",A1)-2)/3600 |
Eigenlijk moet je dus 4 functies maken.quote:Op maandag 5 maart 2012 15:39 schreef Cue_ het volgende:
voorbeelden heb ik natuurlijk :
Gegeven dat ik heb:
GPS_LON = 5° 56' 11" E
GPS_LAT = 50° 54' 03" N
Moet worden:
long 5.936389
lat 50.900833
Waarvan dit dus het exacte punt is. En nu moet ik eigenlijk 2 andere punten.
Denk om dat punt een vierkant (met als center dus bovenstaand punt en een breedte/hoogte van bv 150 meter). En dan heb ik de long/lat van het punt linksboven en het punt rechtsonder (van het vierkant) nodig.
Heb hem een moeten vertalen naar het nederlands en krijg ik dit eruit, maar geeft ie een #Naam? fout op .quote:Op maandag 5 maart 2012 15:54 schreef Deetch het volgende:
Met deze functie reken je alvast het decimale coordinaat uit:
[ code verwijderd ]
Deze functie noem ik even FUNCTIE
Vervolgens moet je er nog een + of - teken voor zetten.
E en N zijn positief, W en Z (of S) zijn negatief
Voor GPS_LON: =IF(RIGHT(A1,1)="E",FUNCTIE,-1*FUNCTIE)
Voor GPS_LAT: =IF(RIGHT(A1,1)="N",FUNCTIE,-1*FUNCTIE)
Gelukt?
1 | =LINKS(P2;VIND("°";P2)-1)+(DEEL(P2;VIND("°";P2)+2;VIND("'";P2)-VIND("°";P2)-2)/60)+DEEL(P2;VIND("'";P2)+2;VIND(TEKEN(34);P2)-VIND("'";P2)-2)/3600 |
Sorry was uberhaupt eerst de vraag of het kon via excel of dat ik hier uberhaupt verkeerd zat met de vraag.quote:Op maandag 5 maart 2012 16:50 schreef Deetch het volgende:
Probeer eens VIND te vervangen door VIND.ALLES. In het NL bestaat de functie VIND niet vandaar de foutmelding.
Volgende keer ook even taal en versie vermelden bij je vraag
Die FUNCTIE kun je er gewoon in plakken (zonder het eerste "=" teken natuurlijk)
Je eerste meting staat in B6quote:Op maandag 5 maart 2012 16:52 schreef Geralt het volgende:
Het gaat er dus om welke formule ik in cel B21 moet zetten en door kan trekken tot en met B30.
Nu staat daar heel simpel =SOM(B7-B6)
Bij cel B22 gaat het dan mis want die telt B8 (waar nog niks staat) - B7 en daar komt natuurlijk een negatief getal uit
Als ik daar geen negatieve waardes meer in heb dan kloppen de negatieve cijfers aan de rechterkant ook vanzelf
Geen probleem en met EXCEL kan alles mits je de onderliggende formules van je probleem maar kent.quote:Op maandag 5 maart 2012 16:57 schreef Cue_ het volgende:
[..]
Sorry was uberhaupt eerst de vraag of het kon via excel of dat ik hier uberhaupt verkeerd zat met de vraag.
een van de drie formules, mag je zelf kiezen.quote:Op maandag 5 maart 2012 17:02 schreef Geralt het volgende:
Ok wacht even. Hier snap ik geen klote van
Wat vul ik in in cel B21?
Dat klopt toch ook, tussen 9 okt en 5 mrt zit toch ook 5 maand dan kan 2300 toch nooit kloppen.quote:Op maandag 5 maart 2012 17:05 schreef Geralt het volgende:
Als ik de bovenste invul in B21 dan zou ik een waarde van 2301 moeten krijgen.
Echter met die formule van jou krijg ik dan 474,1926
Ik wil niet het verbruik per maand hebben over die periode.quote:Op maandag 5 maart 2012 17:15 schreef Deetch het volgende:
[..]
Dat klopt toch ook, tussen 9 okt en 5 mrt zit toch ook 5 maand dan kan 2300 toch nooit kloppen.
Of je moet de tekst in rij 20 even aanpassen want daar staat verbruik per maand.
Als je daar verbruik per periode wilt hebben gebruik dan de formule:
=ALS(b7="";"";(b7-b6)
Ja dat was ff snel omdat ik het nu wel elke maand wil bijhouden maar de laatste gegevens van oktober nog zijnquote:Of je moet de tekst in rij 20 even aanpassen want daar staat verbruik per maand.
Met die doet ie inderdaad wat ik wilquote:Als je daar verbruik per periode wilt hebben gebruik dan de formule:
=ALS(b7="";"";(b7-b6)
Als je er ALS.FOUT(ALS(B7="";"";(B7-B6));"") van maakt geeft hij "" weer als de formule een error geeft.quote:Op maandag 5 maart 2012 18:05 schreef Geralt het volgende:
Die WAARDE is niet zo een ramp, dus ik laat het maar zo. Scheelt jullie/jou ook weer nadenken.
Met de =ALS(B7="";"";(B7-B6)) formule werkt het prima zoals ik het hebben wil en ik heb meteen maar even ook een tabel gemaakt voor het water en daar ook die formule toegepast.
Thanks, ik ben weer wat wijzer geworden
=isfout(quote:Op maandag 5 maart 2012 18:52 schreef Geralt het volgende:
Als ik dat doe dan zegt ie in die cel #NAAM?
Als(isfout(blabla)=waar;"";als(x="";"";ietsanders))quote:
In een =als( etc. functie hoef je nooit =waar / =onwaar te gebruiken, neemt ie automatisch meequote:Op maandag 5 maart 2012 19:48 schreef KritischeMassa het volgende:
[..]
Als(isfout(blabla)=waar;"";ietsanders)
Is dat waar?quote:Op maandag 5 maart 2012 19:50 schreef McGilles het volgende:
[..]
In een =als( etc. functie hoef je nooit =waar / =onwaar te gebruiken, neemt ie automatisch mee
Net getest en WAARquote:Op maandag 5 maart 2012 19:51 schreef DaFan het volgende:
WRONG.
Als(isfout(bla)=onwaar; kan ook he die kan ook waar zijn.
Maar beter gebruik je dan ALS(ISFOUT(bla);x;hierjeding.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |