nommer onblet - messagebox pour indiquer nom

gpasdechance

XLDnaute Nouveau
bonjour

j`ai un pb pour nommer des rapports que je cree sous excel (nommer onglet)

je cree des rapports en selectionnant le compte ou le nom du client (macro du site qui me sert bien a moi aussi :D)


la macro permet de creer un onglet avec numero de compte OK (report des donnees OK..), mais si je selectionne un client, la ca plante car le nom est trop long - donc l`onglet ne reprend pas de nom et ca me met un message d`erreur. voir exemple attache

comment puis je faire pour que si je clique l`option "CLIQUER ICI" de mon userform, en lancant le rapport, j`ai une message qui me demande d`indiquer un nom et que celui ci soit reporte ds la feuille cree?
comment faire cela car je bloque totalement

merci pour votre aide et bon WE a touis ds tous les cas

gpasdechance
 

Pièces jointes

  • nomonglet.zip
    18.7 KB · Affichages: 24
  • nomonglet.zip
    18.7 KB · Affichages: 28
  • nomonglet.zip
    18.7 KB · Affichages: 22

Cousinhub

XLDnaute Barbatruc
Re : nommer onblet - messagebox pour indiquer nom

Bonjour, tu peux essayer avec ceci :
rajoute les lignes en rouge

Code:
    Sheets("format").Copy before:=Sheets("format")
    [COLOR="Red"]If Len(ListBox1) > 31 Then _
        nom = InputBox("Quel nom donner à l'onglet", "Nom trop long!")[/COLOR]
    ActiveSheet.Name = nom
 

porcinet82

XLDnaute Barbatruc
Re : nommer onblet - messagebox pour indiquer nom

Salut,

En plus de la réponse de bhbh, comme j'etais en train de la faire (le code a rajouté est en gras et bleu) :
Code:
Private Sub CommandButton1_Click()
Dim Sh, tablo()
Dim i As Byte
Dim feuille As Worksheet
Dim x As Integer
Dim c As Range
Dim rep As String, rep2 As String
If ListBox1.ListIndex = -1 Then Exit Sub
For Each Sh In Array("A", "B")
    With Sheets(Sh)
        For Each c In .Range(LetCol1 & "2:" & LetCol1 & .Range(LetCol1 & 65536).End(xlUp).Row)
            If CStr(c) = ListBox1.Value Then
                x = x + 1
                ReDim Preserve tablo(1 To 20, 1 To x)
                For i = 1 To 20
                    tablo(i, x) = .Cells(c.Row, i)
                Next i
             End If
        Next c
    End With
Next Sh
 
[B][COLOR=blue]Retour:[/COLOR][/B]
[B][COLOR=blue]rep = InputBox("Quel nom voulez vous donner à la feuille ?", "Titre a mettre", "valeur par défaut a l'ouverture")[/COLOR][/B]
[B][COLOR=blue]If rep = "" Then[/COLOR][/B]
[B][COLOR=blue]   rep2 = MsgBox("Vous n'avez pas donné de nom de feuille." & Chr(10) & "Voulez vous saisir un nom de feuille maintenant ?", vbCritical + vbYesNo, "")[/COLOR][/B]
[B][COLOR=blue]   If rep2 = vbYes Then GoTo Retour:[/COLOR][/B]
[B][COLOR=blue]Else[/COLOR][/B]
[B][COLOR=blue]   Sheets("format").Copy before:=Sheets("format")[/COLOR][/B]
[B][COLOR=blue]   ActiveSheet.Name = rep[/COLOR][/B]
[B][COLOR=blue]End If[/COLOR][/B]
[COLOR=green]'...[/COLOR]

@+
 

wamme

XLDnaute Occasionnel
Re : nommer onblet - messagebox pour indiquer nom

Bonjour gpasdechance.
Peut-être en remplaçant

Sheets("format").Copy before:=Sheets("format")
ActiveSheet.Name = ListBox1

par

Sheets("format").Copy before:=Sheets("format")
ActiveSheet.Name = Left(ListBox1, 3) 'ou (ListBox1,31)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 606
Messages
2 090 176
Membres
104 435
dernier inscrit
ZAMAZ