• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

tabbladen sorteren

Status
Niet open voor verdere reacties.

Bigbrains

Gebruiker
Lid geworden
27 mei 2009
Berichten
57
hoi allen, ik sta voor een uitdaging.

is het mogelijk om tabbladen te sorteren op basis van alfabetische volgorde van de inhoud van een cel, bijv A2.

In cel a2 staat dan telkens een naam, en ik moet op basis van die naam de tabbladen gesorteerd hebben.

iemand een idee?
 
Beste Bigbrains ;)

Met dit stukje code kan je de tabbladen sorteren volgens alfabet, maar nog niet volgens cel A2.
Volgens cel A2 weet ik het niet.

Hoe zien de namen van de tabbladen eruit ?

Misschien eens kijken in de zoekfunctie van helpmij.nl of in Google.

Code:
Sub Sorteren()
For i = 1 To Sheets.Count
  For j = i + 1 To Sheets.Count
    If Sheets(j).Name < Sheets(i).Name Then
      Worksheets(j).Move before:=Worksheets(i)
    End If
  Next j
Next i
End Sub

Groetjes Danny. :thumb:
 
Sub SheetsSort()
Dim i As Integer
Dim y As Integer
Dim x As Integer
Dim Mysheet As Worksheet
i = Sheets.Count
For y = 1 To i
Set Mysheet = Sheets(y)
For x = y To i
If Sheets(y).Range("B2") > Sheets(x).Range("B2") Then
Set Mysheet = Sheets(x)
End If
Next
Mysheet.Move Before:=Sheets(y)
Next
End Sub

hoi ik heb ergens anders deze code vandaan. Deze doet het.

Alleen lukt het me niet om 2 dingen aan te passen. 1. ik wil de code onder een opdrachtknop en 2 hoe zorg ik er voor dat het tabblad waar ik de opdrachtknop op zet niet meegenomen wordt met sorteren. Dit tabblad moet vooraan blijven staan.
 
Deze code gekregen tijdens de opleiding in VBA:

Code:
Sub SortSheets()
   Application.ScreenUpdating = False
   Dim I As Integer, J As Integer

   For I = 1 To Sheets.Count - 1  'Aantal tabbladen die aanwezig zijn / Pak 1 tabblad 
      For J = I + 1 To Sheets.Count ' Pak 1 tabblad verder
         If UCase(Sheets(I).Name) > UCase(Sheets(J).Name) Then 'Als tablad 1 groter in alfabet is dan tabblad 2
            Sheets(J).Move Before:=Sheets(I) 'wissel deze om
         End If
     Next J
  Next I
End Sub
 
Beste Bigbrains ;)

Zie bestandje met knopje voor Macro.
Als je wilt dat de knop steeds in tabblad 1 blijft staan zet dan in B2 het cijfer 1, dit krijgt voorrang op letters.

Groetjes Danny. :thumb:
 

Bijlagen

Beste Bigbrains ;)

Zie bestandje met knopje voor Macro.
Als je wilt dat de knop steeds in tabblad 1 blijft staan zet dan in B2 het cijfer 1, dit krijgt voorrang op letters.

Groetjes Danny. :thumb:

Vielen dank Danny
 
ik sta nu voor de volgende saga in deze uitdaging...

vooraf heb ik een lijst met namen waarvan ik tabbladen moet ontvangen..nu is het zo dat ik niet voor iedere naam een tabblad ontvang.

Is het mogelijk om de tabbalden te sorteren op basis van de lijst (lijst is overigens op alfabetische volgorde) en op de plek waarvoor geen tabblad is ontvangen een leeg tabblad in te voegen. overigens zou de code de naam uit de lijst moeten herkennen in een van de tabbladen in cel b2 ook als deze niet eact hetzelfde is gespeld.

beetje ingewikkelde vraag, maar het is hopelijk duidelijker als je het bestandje ziet.
 

Bijlagen

Beste Bigbrains ;)

Hier moet ik voor passen :confused:

1 ding weet ik dat in VBA dat er altijd gekeken wordt naar dezelfde schrijfwijze en niet iets dat er op lijkt.

Groetjes Danny. :thumb:
 
Dit is een macro die kijkt welke tabbladen aanwezig zijn
Code:
Sub WelkTabblad()
For i = 1 To Worksheets.Count
ActiveSheet.Cells(i, 1).Value = Worksheets(i).Name
Next i
End Sub
ze worden in kolom A rij 1 naar beneden gezet , wat jij wil bereiken zal een ganse boterham worden
 
Dit is een macro die kijkt welke tabbladen aanwezig zijn
Code:
Sub WelkTabblad()
For i = 1 To Worksheets.Count
ActiveSheet.Cells(i, 1).Value = Worksheets(i).Name
Next i
End Sub
ze worden in kolom A rij 1 naar beneden gezet , wat jij wil bereiken zal een ganse boterham worden



Oww dat is niet al te hoopgevend :confused:

ben weleens ingewikkeldere dingen tegengekomen die met een code in vba op te lossen waren.
 
Indien het makkelijk zou zijn dan was deze topic al opgelost ;) , je hebt een lijstje met de namen , zet daar de teruggemailde tabbladen via de macro " WelkTabblad " naast , via een formule kanje de identieke gegevens vergelijken en waar er niks is een lege cel , maak dan een macro die van de vergelijking + lege cellen terug tabbladen maakt , of die enkel lege tabbladen toevoegt tussen de reeds bestande tabbladen > je kan met een macro controleren of een tabblad al dan niet bestaat .
Dit is zowat in het kort wat volgens mij jouw vraag is .
 
Beste Bigbrains ;)

Heb geprobeerd om tot een oplossing te komen :D

In kolom D vanaf D7: D20 staan de namen die je zou willen.
In kolom F vanaf F7: F20 staan de namen die je hebt.

In cel D1 staat een matrixformule die berekent hoeveel Tabbladen er moeten aan gemaakt worden.
In kolom A worden dan het aantal tabbladen met de namen geschreven.

Met de knoppen kan je kiezen uit op alfabetisch plaatsen of tabbladen aanmaken.

Groetjes Danny. :thumb:
 

Bijlagen

Beste Bigbrains ;)

Heb geprobeerd om tot een oplossing te komen :D

In kolom D vanaf D7: D20 staan de namen die je zou willen.
In kolom F vanaf F7: F20 staan de namen die je hebt.

In cel D1 staat een matrixformule die berekent hoeveel Tabbladen er moeten aan gemaakt worden.
In kolom A worden dan het aantal tabbladen met de namen geschreven.

Met de knoppen kan je kiezen uit op alfabetisch plaatsen of tabbladen aanmaken.

Groetjes Danny. :thumb:


Hoi Danny,

Ik denk dat dit heel dicht in de buurt komt van wat ik nodig heb.

alleen werkt alleen de knop tabbladen sorteren.

zou je kunnen vertellen wat de andere knoppen doen, en welke codes daar aan verbonden zijn. Hoe maak ik bijvoorbeeld een leeg tabblad.

Sub WelkTabblad()
For i = 1 To Worksheets.Count
ActiveSheet.Cells(i, 1).Value = Worksheets(i).Name
Next i
End Sub

weet je toevallig ook hoe ik bovenstaande code aan kan passen, in de praktijk hebben mn tabbladen namelijk niet de namen van cel B2, ik zou dus een ipv de opsomming van tabbladnamen een opsommingen van de inhoud van cel B2 moeten hebben


alvast dank
 
Laatst bewerkt:
Indien het makkelijk zou zijn dan was deze topic al opgelost ;) , je hebt een lijstje met de namen , zet daar de teruggemailde tabbladen via de macro " WelkTabblad " naast , via een formule kanje de identieke gegevens vergelijken en waar er niks is een lege cel , maak dan een macro die van de vergelijking + lege cellen terug tabbladen maakt , of die enkel lege tabbladen toevoegt tussen de reeds bestande tabbladen > je kan met een macro controleren of een tabblad al dan niet bestaat .
Dit is zowat in het kort wat volgens mij jouw vraag is .



Ja, dat heb je heel goed samengevat...k ben echt alleen een kluns met vba, een code kopieren en hier en daar wat aanpassen dat gaat 2 van de 10 keer goed. maar een code schrijven:confused:
 
weet je toevallig ook hoe ik bovenstaande code aan kan passen, in de praktijk hebben mn tabbladen namelijk niet de namen van cel B2, ik zou dus een ipv de opsomming van tabbladnamen een opsommingen van de inhoud van cel B2 moeten hebben


alvast dank

Lukt het met deze
Code:
Sub WelkTabblad()
For i = 1 To Worksheets.Count
ActiveSheet.Cells(i, 1).Value = Worksheets(i).Range("B2")
Next i
End Sub
wil je het in een andere kolom pas dan 1 aan en kijk ook eens wat je met offset en resize kan ;)
 

Bijlagen

Laatst bewerkt:
Beste Bigbrains ;)

Had het verkeerde bestandje geplaatst :D

Probeer deze eens.

Klik eerst op de knop : Welke tabbladen zijn aanwezig.
Dan op de knop Tabbladen aanmaken gegevens kolom A.

Groetjes Danny. :thumb:
 

Bijlagen

Laatst bewerkt:
Hoi danny,

ik heb je bestandje even uitgeprobeerd, en jawel hij doet het. alleen rest dan nog de vraag of het toch niet mogelijk is om de lege aangemaankte tabbladen "automatisch" op de juiste plek te krijgen.

want volgens mij moet ik deze nu nog handmatig op de juiste plek zetten, tenzij ik iets over het hoofd zie.

gr, Jones
 
nog een testje derbij , eventueel als inspiratie voor een nieuwe macro om de tabbladen op de juiste plaats te krijgen
 

Bijlagen

Laatst bewerkt:
Misschien kan je de code wat aanpassen ;) werkt 1 maal goed en dan loopt het fout tabbladen staan volgens kijst en dan oeps ( bedtijd > straks Luxemburg )
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan