Celnaam automatisch wijzigen in VBA

Status
Niet open voor verdere reacties.

Rhandel

Gebruiker
Lid geworden
14 jun 2010
Berichten
8
Hallo,

Ik ben bezig met een programma waarbij het erg handig zou zijn dat een celnaam automatisch een andere naam krijgt.
Die naam is een naam die opgebouwd wordt door het programma en is dus variabel. Het wordt aangeduid met: txtbestandsnaam.

Als het programma de gegevens wegschrijft wil ik graag dat hij in de cel waar de waarde van txtbestandsnaam komt te staan, ook de celnaam wijzigt in deze naam.

Het programma moet later namelijk deze cel weer makkelijk kunnen zoeken.

Is mijn probleem een beetje duidelijk?
 
Wordt er steeds naar dezelfde cel weggeschreven of is dit ook variabel ? Gebeurt het dat er naar een reeds benoemde cel weggeschreven wordt zodat de oude naam vervangen moet worden door de nieuwe naam ?
 
Hoi,

De waarde wordt steeds in een nieuwe cel weggeschreven. Bestaande cellen moeten die waarde en naam dus behouden.
 
Hier heb je een basis waar je verder mee kan bouwen
Code:
Sub Bereik()
    txtbestandsnaam = InputBox("Geef de nieuwe naam op", "Bereiknaam")
    With Blad1
        ActiveWorkbook.Names.Add txtbestandsnaam, "=" & .Name _
            & "!" & .Range("A65536").End(xlUp).Offset(1).Address
    End With
End Sub
 
Ik krijg toch een foutmelding. Heb het gedeelte inputbox weggelaten want txtbestandsnaam is al gevuld.

Hij gaat fout op dat stukje: name

Ik zal een deel van de formule kopieren zodat je dan zien waar het moet komen te staan.

Code:
 'Wegschrijven  Algemeen - Algemeen
    If ComboBox1.Value = "bedrijf Algemeen" And ComboBox2.Value = "Algemeen" Then
    Sheets("Algemeen").Select
    Range("b65536").End(xlUp).Select
    ActiveCell.Offset(1, 0).Select
    ActiveCell = txtbestandsnaam
    
    ActiveWorkbook.Names.Add txtbestandsnaam, "=" & .Name _
            & "!" & .Range("A65536").End(xlUp).Offset(1).Address

    ActiveCell.Offset(0, 1).Select
    ActiveCell = datum
    ActiveCell.Offset(0, 1).Select
    ActiveCell = naam
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    End If


Kun je hier iets meer mee?

Alvast bedankt hoor!

Groeten René
 
Laatst bewerkt door een moderator:
Code:
    ActiveWorkbook.Names.Add txtbestandsnaam, "=" & ActiveSheet.Name _
            & "!" & .Range("A65536").End(xlUp).Offset(1).Address

Je hebt de with statement van Warme Bakkertje weggelaten, dus de .Name kon niet worden opgehaald van
Activesheet.name

Ik was toevallig in de buurt, dus ik heb je code ook iets overzichtelijker gemaakt.

Code:
If ComboBox1.Value = "bedrijf Algemeen" And ComboBox2.Value = "Algemeen" Then
    
    With Sheets("Algemeen").Range("b65536").End(xlUp)
        
        .Offset(1, 0) = txtbestandsnaam
        .Offset(1, 1) = datum
        .Offset(1, 2) = naam

        ActiveWorkbook.Names.Add txtbestandsnaam, "=Algemeen!" & .Offset(1, 0).Address
    
    End With
    
    With ActiveWorkbook
        
        .Save
        .Close
    
    End With

End If
 
Laatst bewerkt:
Code:
With ActiveWorkbook
        .Save
        .Close
End With
kan ook
Code:
ActiveWorkbook.Close True
 
Hey heren,

Hij geeft toch weer een foutmelding (code 1004).

Het zit 'm in: ActiveWorkbook.Names.Add txtbestandsnaam, "=Algemeen!" & .Offset(1, 0).Address

Kan het zijn dat de celnaam geen cijfers mag bevatten? De waarde van txtbestandsnaam wordt bijvoorbeeld:
0300-ALG-2010-3

Zou het hierop kunnen fout gaan?

Thankx
 
A named range can be up to 255 characters long and can contain letters, numbers, periods and underscores (no spaces or special punctuation characters).
Named ranges are not case sensitive and they can contain both upper and lower case letters. They cannot resemble any actual cell addresses such as "B3" or "AA12".
All named ranges must begin with a letter, an underscore "_" or a backslash "\".
Named ranges can include numbers but cannot include any spaces.
You cannot use any named ranges that resemble actual cell addresses (e.g. A$5 or R3C8).
You cannot use any symbols except for an underscore and a full stop. It is possible to include a backslash and a question mark as long as they are not the first characters.
Named ranges can be just single letters with the exception of the letters R and C.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan