Macro

T

Tony

Guest
Bonjour je suis un grand débutant sur excel...

J'ai trouvé sur le site de microsoft une macro permettant d'inserer une nouvelle feuille après toute les feuilles dont voici le code :
Sub AddNewSheet()

Application.ScreenUpdating = False ' Prevents screen refreshing.

' This line adds a new worksheet to the workbook. Alternatively, use:
'
' DialogSheets.Add Adds a dialog sheet.
' Charts.Add Adds a chart sheet.
' Modules.Add Adds a Visual Basic module.
' Sheets.Add Type:=xlExcel4MacroSheet Adds an MS Excel 4.0 macro
' sheet.
Worksheets.Add

' This line makes the new sheet (which is also the active sheet) the
' last sheet in the workbook.
ActiveSheet.Move After:=Sheets(ActiveWorkbook.Sheets.Count)
Application.ScreenUpdating = True ' Enables screen refreshing.


End Sub


Cette macro je l'utilise dans ma première feuille de calcul qui sert de formulaire. Ce que je voudrais faire, c'est une case texte avec le nom d'une personne pas exemple et que ce nom sert pour renommer ma nouvelle feuille.
Genre je tape dans la case NOM : alfred et hop une feuille se crée après toute les autres et elle porte le nom alfred.
En tout cas j'espère que quelqu'un pourra m'aider et je le remercie d'avance
J'espère que j'ai été clair ;)
 

porcinet82

XLDnaute Barbatruc
Salut Tony,

Je te propose un macro que je viens de faire et qui je pense sera plus facile a comprendre que ce que propose Bill. Je t'ai commander le code vite fais, mais si tu as d'autres questions, n'hesite pas.

Code:
Private Sub Créer_Click()
Dim i As Byte

Application.ScreenUpdating = False
'permet de figer l'ecran
For i = 1 To Sheets.Count
'on parcours toutes les feuilles (de 1 au nombre de feuilles presentent dans le classeur)
    If Cells(1, 2).Value = Sheets(i).Name Then
    'on fait un test pour savoir si la feuille existe deja ou non
    'cad si la cellule est equivalente au nom de la feuille i
        MsgBox 'La feuille existe deja'
        'si c'est le cas, on affiche le message ci-dessu
        Exit Sub
        'puis on sort de la macro
    End If
Next i
Sheets.Add.Name = Cells(1, 2).Value
'on ajoute une feuille que l'on renomme en meme tps de la valeur de la cellule ligne 1 colonne 2
ActiveSheet.Move After:=Sheets(Sheets.Count)
'on place la feuille en derniere position
Sheets('feuil1').Select
Application.ScreenUpdating = True
End Sub

Je te joint le fichier au cas ou.
[file name=Tony_20060419194136.zip size=10567]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Tony_20060419194136.zip[/file]

@+

PS : Dans le code, il faut virer les &nb sp;

Message édité par: porcinet82, à: 19/04/2006 19:43
 

Pièces jointes

  • Tony_20060419194136.zip
    10.3 KB · Affichages: 19

MichelXld

XLDnaute Barbatruc
bonsoir

j'espere que cet exemple pourra t'aider

Dim Ws As Worksheet
Dim Reponse As String

Application.ScreenUpdating = False
Worksheets.Add After:=Sheets(ActiveWorkbook.Sheets.Count)
Application.ScreenUpdating = True

Reponse = InputBox('Saisissez le nom de la feuille .', 'Nom')
If Reponse = '' Then Exit Sub

On Error Resume Next
Set Ws = Worksheets(Reponse)
If Ws Is Nothing Then ActiveSheet.Name = Reponse



bonne soiree
MichelXld
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS