

Is het mogelijk (waarschijnlijk ja) om een automatische naam aan te maken in Excel door middel van een VBA? Hierbij tevens rekening houdend met het aantal kolommen.
BV:
Ik heb een op blad1 kolom B t/m G gevuld met data, waarbij de 1e cel de naam bevat. Is het mogelijk om door middel van een VBA het aantal kolommen te tellen en vervolgens hiervan een naam te definiëren waarbij hij enkel de data naar onder pakt. Dus zowel horizontaal als verticaal is dynamisch. Overigens is de data naar beneden soms met lege cellen ertussen (om het nog complexer te maken).
Voor de volledigheid een demo in de bijlage.
Ik snap niet wat je bedoelt; noch met 'namen' noch met 'enkel de data naar onder pakt'. Het had handiger geweest als je een voorbeeldje had gemaakt met de gewenste output.
Gebruik de QUOTE knop alleen als je iets wit citeren.
Op deze pagina kun je zien hoe je met TAGS werkt.
Excuses voor de onduidelijkheid. Zie in de bijlage wat de output moet zijn.
p0wmia,
ik denk dat je dit bedoelt....
Haije
___________________________________________________
Denk ik ook
Code:Sub VenA() For Each cl In Rows(1).SpecialCells(2) Names.Add cl, Range(cl.End(xlDown), Cells(Rows.Count, cl.Column).End(xlUp)) Next cl End Sub
Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.
@Haije
Wauw dit ziet er wel al goed uit. Ik wil alleen de namen uit Rij 1 gebruiken niet kolom 1 (dus auto, groente, mensen enz.) Bij Auto moet hij dus enkel het bereik eronder pakken.
@VenA... Dit is hem. Alleen als ik nieuwe kolommen toevoeg dat lijkt hij dit niet helemaal te doen...
Laatst aangepast door p0wmia : 19 mei 2017 om 11:16
Lijkt mij wel.
Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.
Denk dat de fout inderdaad elders zit. In mijn bestand heb ik inderdaad celverwijzingen waar deze data vandaan komt. ALs er geen data naar voren komt geeft hij "" (oftewel leeg) aan. Waarschijnlijk gaat hier iets fout. zie bijlageTester (hs).xlsm
Ik zie geen formules onder de klanten. Ook mag in een gedefinieerde naam geen spatie voorkomen. Plaats een representatief voorbeeld.
Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.
p0wmia,
Oeps, één komma vergeten.
In deze bijlage rechtgezet
Haije
___________________________________________________
Je hebt gelijk. Hierbij representatief voorbeeld (hoop ik). Door de formules is hij de weg kwijt....
Laatst aangepast door p0wmia : 19 mei 2017 om 12:10
representatief voorbeeld?
Haije
___________________________________________________
test deze eens.
Met een paar foutcontroles in. o.a het vervangen van spaties.
en o.a een naam bereik van all uw data die je dan ook kan gebruiken voor draatabellen
MVG,
Philiep
Wie beweert dat iets niet kan, mag degene die ermee bezig is absoluut niet storen
Succes gaat van mislukking naar mislukking, zonder verlies van enthousiasme
of
Code:Sub VenA() Dim r1 As Range, r2 As Range For Each cl In Rows(1).SpecialCells(-4123) If cl <> "" Then b = True Set r1 = Nothing Set r2 = Nothing For Each cl1 In Range(cl.Offset(1), Cells(Rows.Count, cl.Column).End(xlUp)) If cl1 <> "" And b Then Set r1 = cl1 Set r2 = cl1 b = False ElseIf cl1 <> "" Then Set r2 = cl1 End If Next cl1 If cl.Address <> Range(r1, r2).Address Then Names.Add cl, Range(r1, r2) End If Next cl End Sub
Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.
Wil je svp niet quoten?
Code:Names.Add Replace(cl, " ", "_"), Range(r1, r2)
Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.
Top. En op een ander tabblad beginnen de cellen met een cijfer. Dit leest de "namen beheren" ook niet. Ik wil er graag bv een letter "A" aan toevoegen zodat hij dit wel leest (mag niet beginnen met). Hoe doe ik dit?
"A" & cl
Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.
Code:Range(r1, r2).Name = Replace(cl, " ", "_")
____________
mvg,
Harry
Lag nooit om de keuzes van dien vraauw, bist ter zulf aine van....
(Grunnegs-Gronings)