• 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.

Invoegen bladen macro

Status
Niet open voor verdere reacties.

RB_online

Gebruiker
Lid geworden
10 mrt 2005
Berichten
205
Hallo

ik probeer een lange lijst te verdelen in meerdere bladen.

Hiervoor moet er in blad invoer gekeken worden naar een bepaalde kolom.
In het voorbeeld bestand is dit kolom A
hij moet de waarde lezen uit cel A1 en daarna deze regel kopieren en in het blad plakken met dezelfde naam als de waarde in a1

bijv in cel a1 staat januari. Deze regel wordt gekopieerd en daarna geplakt in blad januari
Als blad januari niet bestaat moet deze aangmaakt worden.

Hoe kan ik met een macro kijken of dit blad bestaat, zo niet dit blad aanmaken en daarna gewoon verder gaan?

Ik heb al diverse dingen geprobeerd met bijv exists, en on error goto maar ik kom er niet
uit

rené
 

Bijlagen

Rb_online, En wat moet er gebeuren als de gebruiker bijvoorbeeld 'januarie' intikt? Of komen de waarden in kolom A uit een vastgestelde listing? Zo niet, dan zullen er in de loop van de tijd héél wat sheets aangemaakt gaan worden...

Groet, Leo
 
de waardes in kolom a komen uit een keuzelijst. de gebruiker hoeft dus zelf geen waardes in te tikken. de hoeveelheid bladen zal wel mee gaan vallen maar ik wil ze wel graag automatisch aangevuld hebben
 
RB_online, Op het moment dat ik VBA in wilde duiken bedacht ik me nog het volgende... Je sheetnamen komen uit een keuzelijst. Bevat deze keuzelijst alleen alle maanden van het jaar? Waar ik dus eigenlijk op doel, is dat je op het moment dat je een item toevoegd aan je keuzelijst dan ook zelf direct handmatig een sheet toevoegd. Zo zorg je ervoor dat je keuzelijst en je sheets altijd 1 op 1 lopen en hoef je ook geen code te (laten) schrijven die 'ontbrekende' sheets moet toevoegen... Is dit een idee???

Groet, Leo
 
het bestand beslaat een bepaalde periode. De keuzelijst bevat veel meer items dan er per periode gebruikt worden. Aangezien het niet 100% zeker is welke items er in een bepaalde periode gebruikt worden, wil ik graag alleen een nieuwn blad aanmaken voor die items die geselecteerd. Worden

Misschien moet ik even iets duidelijker zijn
Er is een blad invoer. Hierop wordt uit de keuzelijsten een item geselecteerd.
In de volgende kolommen wordt dan een bepaalde hoeveelheid gegevens geplaatst.
Op deze manier krijg je een hele lange lijst.
ik wil graag de gegevens per item op een blad plaatsen. en alleen voor die items die gekozen zijn een blad aanmaken.Dit om een beter overzicht te krijgen zonder dat er bladen tussen zitten die geen gegevens bevatten.

Het invoer blad bevat nu ongeveer 2500 regels met ca 15 items die met regelmaat terug komen. Hier snel de juiste gegevens uitzoeken is zeer lastig


René
 
RB_online, Aha, juist... Het is me nu duidelijk (denk ik). Standaard bestaat dat workbook uit slechts die ene invoersheet? Pas na het draaien van de code worden er zoveel sheets aangemaakt als dat er items zijn gebruikt in kolom A van die invoersheet?
Vindt die 'verdeling' van de regels meerdere keren in een periode plaats of ga je de code pas aan het einde van de periode éénmalig gebruiken?

Groet, Leo

(hmmm, ik begrijp mezelf niet eens meer... Ik ga eerst maar 'ns naar bed! Morgen verder)
 
Deze verdeling komt meerdere momenten voor. 1 keer per week wordt alles opnieuw verdeeld vanaf de plaats waar de vorige keer gestopt is.
Elke keer is het mogelijk dat er items bijzitten die er de vorige verdeling niet bij zaten
 
Gelukt

Ik heb deze code op internet gevonden en aangepast voor mjn doel. Als er iemand is die een betere code weet, dan zie ik hem graag verschijnen.

Bedankt voor de moeite en het meedenken.
'
René



Code:
Option Explicit
Dim naam As String
Dim rij As Integer



Function SheetExist(strNaam As String) As Boolean
    Dim sh As Worksheet
    Dim blnResult As Boolean
    For Each sh In ThisWorkbook.Worksheets
        If StrComp(strNaam, sh.Name, vbTextCompare) = 0 Then
            blnResult = True
            Exit For
        End If
        Next
    SheetExist = blnResult
End Function

Sub Verdeel()
For rij = 1 To 12
naam = Range("A" & rij).Value
If SheetExist(naam) Then
' instructie 1
Else: Sheets.Add after:=Worksheets(Sheets.Count)
ActiveSheet.Name = naam
End If
Sheets("blad1").Select
Rows(rij).Select
Selection.Copy
Sheets(naam).Select
Range("A10000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Sheets("blad1").Select
Next
Application.CutCopyMode = False
Range("A1").Select
End Sub
 
Dit

Code:
Sheets("blad1").Select
Rows(rij).Select
Selection.Copy
Sheets(naam).Select
Range("A10000").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

kan nog beter als:

Code:
Sheets("blad1").Rows(rij).Copy Sheets(naam).Range("A10000").End(xlUp).Offset(1)

ongestest

Wigi
 
Werkt perfect:thumb:

Zo is er altijd weer iets te leren.

Wigi bedankt

René
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan