DENUMIRE SHEET DUPA VALOAREA REGASITA INTR-O CELULA DIN SHEE

Închis
verbavolant
Mesaje: 44
Membru din: Dum Aug 27, 2017 4:37 pm

DENUMIRE SHEET DUPA VALOAREA REGASITA INTR-O CELULA DIN SHEE

Mesaj de verbavolant » Sâm Sep 02, 2017 7:47 pm

Buna seara,
as vrea ca fiecare sheet din dreapta sheetului "Comisii", sa preia ca denumire a sheetului valoarea regasita in C22. Poate cineva sa ma ajute?
Multumesc anticipat!
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

TudyBTH
Moderator
Moderator
Mesaje: 993
Membru din: Joi Feb 11, 2016 2:12 pm
Localitate: Cluj Napoca

Re: DENUMIRE SHEET DUPA VALOAREA REGASITA INTR-O CELULA DIN

Mesaj de TudyBTH » Sâm Sep 02, 2017 9:14 pm

Buna,
Pentru asta ar trebui sa transformati fisierul in .xlsm si sa introduceti urmatorul cod in fiecare dintre foile la care doriti sa se schimbe automat denumirea.

Cod: Selectaţi tot

Private Sub Worksheet_Activate()
    On Error GoTo errName
    ActiveSheet.Name = Range("C22")
    On Error GoTo 0
    Exit Sub
errName:
    MsgBox "Denumirea introdusa nu este permisa!"
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo errName
    If Not Intersect(Target, Range("C22")) Is Nothing Then ActiveSheet.Name = Range("C22").Value
    On Error GoTo 0
    Exit Sub
errName:
    MsgBox "Denumirea introdusa nu este permisa!"
    Application.Undo
End Sub
O solutie mai simpla ar fi sa introduceti denumirile tuturor foilor intr-o singura lista. De acolo le puteti prelua apoi si in foi cu ajutorul unei formule. In acest caz insa nu ar fi nevoie sa introduceti cod in fiecare foaie. sau si alte solutii mai simple dar totul depinde de modul in care folositi/adaugati aceste foi.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Am invatat sa inotam in apa, ca pestii
Am invatat sa zburam in aer, ca pasarile
A ramas doar sa invatam sa traim pe Pamant, ca Oamenii.

verbavolant
Mesaje: 44
Membru din: Dum Aug 27, 2017 4:37 pm

Re: DENUMIRE SHEET DUPA VALOAREA REGASITA INTR-O CELULA DIN

Mesaj de verbavolant » Sâm Sep 02, 2017 9:47 pm

Multumesc, dar e multa munca sa pun la fiecare sheet codul, sunt f multe sheeturi :)

TudyBTH
Moderator
Moderator
Mesaje: 993
Membru din: Joi Feb 11, 2016 2:12 pm
Localitate: Cluj Napoca

Re: DENUMIRE SHEET DUPA VALOAREA REGASITA INTR-O CELULA DIN

Mesaj de TudyBTH » Sâm Sep 02, 2017 9:53 pm

cat de des se modifica acele denumiri din C22?
Am invatat sa inotam in apa, ca pestii
Am invatat sa zburam in aer, ca pasarile
A ramas doar sa invatam sa traim pe Pamant, ca Oamenii.

TudyBTH
Moderator
Moderator
Mesaje: 993
Membru din: Joi Feb 11, 2016 2:12 pm
Localitate: Cluj Napoca

Re: DENUMIRE SHEET DUPA VALOAREA REGASITA INTR-O CELULA DIN

Mesaj de TudyBTH » Sâm Sep 02, 2017 10:16 pm

O solutie ar fi sa rulati codul urmator de cate ori faceti modificari

Cod: Selectaţi tot

Sub ChengeSheetsName()
    '======================================
    'Introduceti aici numele foii folosite ca reper
    'toate foile care vor fi amplasate dupa aceasta foaie
    'vor fi redenumite cu textul introdus in celula C22 a fiecarei foi
    
    Const FoaieReper As String = "COMISII"
    
    '======================================
    
    Dim ws As Worksheet
    Dim errInd As Integer
    Dim tx As String
    
    On Error Resume Next
    For Each ws In ThisWorkbook.Worksheets
        If ws.Index > ThisWorkbook.Sheets(FoaieReper).Index Then ws.Name = ws.Range("C22").Value
        If Err.Number > 0 Then
            errInd = 1: Err.Clear: tx = tx & ws.Name & ";"
        End If
    Next ws
    On Error GoTo 0
    If errInd = 1 Then MsgBox "Atentie! Unele foi nu au putut fi redenumite." & vbNewLine & tx
End Sub
Codul trebuie introdus intr-un modul standard si in fisierul atasat am instalat un buton in foaia "COMISII"
pentru a scrie un cod care sa actualizeze automat toate foile ar fi util sa ne dati ceva mai multe detalii despre modul in care folositi fisierul (cat de des se schimba valorile din C22, adaugarea de sheeturi noi etc)
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Am invatat sa inotam in apa, ca pestii
Am invatat sa zburam in aer, ca pasarile
A ramas doar sa invatam sa traim pe Pamant, ca Oamenii.

verbavolant
Mesaje: 44
Membru din: Dum Aug 27, 2017 4:37 pm

Re: DENUMIRE SHEET DUPA VALOAREA REGASITA INTR-O CELULA DIN

Mesaj de verbavolant » Sâm Sep 02, 2017 10:33 pm

Multumesc mult de tot, e ceea ce doream.Numele din C22 nu se schimba, este deja ,doar sheeturile trebuie sa ia acea denumire.

Închis

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”