Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb macro : message erreur

6 réponses
Avatar
claire_db
Je n'y connait rien en macro. On m'a dit de mettre ce code mais ca me met un
message d'erreur et Activesheet surligné en jaune.
ci joint le code :

Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select

For Each cellule In Range("G24", Range("G24").End(xlDown).Address)
If TestExistenceFeuille(cellule.Value, ActiveWorkbook.Path & "\" &
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub

Quelqu'un sait pourquoi? Merci d'avance

6 réponses

Avatar
LSteph
Bonjour,

Probablement parceque la cellule que tu désignes
est vide
ou
contient un nom non valide (caractères interdits pour les noms)
ou
dépassement nb cractères
ou encore
le nom exixte déjà

Cordialement.

lSteph

Je n'y connait rien en macro. On m'a dit de mettre ce code mais ca me met un
message d'erreur et Activesheet surligné en jaune.
ci joint le code :

Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select

For Each cellule In Range("G24", Range("G24").End(xlDown).Address)
If TestExistenceFeuille(cellule.Value, ActiveWorkbook.Path & "" &
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub

Quelqu'un sait pourquoi? Merci d'avance




Avatar
MichDenis
Le minimum que tu dois faire est de nous dire
pourquoi tu utilises cette macro....qu'est-ce que tu veux faire ?

Cette procédure doit s'appliquer dans un classeur où tu as la
fonction TestExistenceFeuille() ....Tu ne nous as pas donné le code !

Un nom d'un onglet d'une feuille ne doit pas avoir plus de 31 caractères et
ne peut pas être vide non plus.
Certains caractères sont interdits dans la nomination des onglets d'une feuille
* ? : [ ] /

si Cellule est vide ou contient des caractères interdits, ta macro va se planter
ActiveSheet.Name = cellule.Value

'-------------------------------
Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select
For Each cellule In Range("G2:G" & Range("G65536").End(xlUp).Row)
If TestExistenceFeuille(cellule.Value, _
ActiveWorkbook.Path & "" & ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub
'-------------------------------


"claire_db" a écrit dans le message de news:

Je n'y connait rien en macro. On m'a dit de mettre ce code mais ca me met un
message d'erreur et Activesheet surligné en jaune.
ci joint le code :

Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select

For Each cellule In Range("G24", Range("G24").End(xlDown).Address)
If TestExistenceFeuille(cellule.Value, ActiveWorkbook.Path & "" &
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub

Quelqu'un sait pourquoi? Merci d'avance
Avatar
LSteph
..une solution sous réserve du reste du contexte

Sub AjoutPages()
Dim c as range
ActiveWorkbook.Save
Sheets("page_de_garde").Activate

For Each c In Range("G24", Range("G24").End(xlDown).Address)
If TestExistenceFeuille(c.Value, ActiveWorkbook.Path & "" & _
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
on error resume next
ActiveSheet.Name = left(c,31)
on error goto 0
End If
Sheets("page_de_garde").Activate
Next
End Sub

'lSteph

Je n'y connait rien en macro. On m'a dit de mettre ce code mais ca me met un
message d'erreur et Activesheet surligné en jaune.
ci joint le code :

Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select

For Each cellule In Range("G24", Range("G24").End(xlDown).Address)
If TestExistenceFeuille(cellule.Value, ActiveWorkbook.Path & "" &
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub

Quelqu'un sait pourquoi? Merci d'avance




Avatar
claire_db
La macro sert à ajouter des feuilles dans le classeur Excel. Je rentre ds la
cellule "G21" (qui est dans la feuille "page_de_garde") le nombre de
feuilles à créer.
Voici la macro sub ajoutPages et la fonction : TestExistenceFeuille
Merci d'avance !

Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select

For Each cellule In Range("G21", Range("G21").End(xlDown).Address)
If TestExistenceFeuille(cellule.Value, ActiveWorkbook.Path & "" &
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub

Public Function TestExistenceFeuille(strNomFeuille As String, strNomFichier
As String) As Boolean
TestExistenceFeuille = False
On Error GoTo err
Dim oAppExcel As Excel.Application
Dim oWbk As Excel.Workbook
Dim oSht As Excel.Worksheet
'Lance Excel
Set oAppExcel = New Excel.Application
'Ouvre le classeur
Set oWbk = oAppExcel.Workbooks.Open(strNomFichier)
'Accède à la feuille
Set oSht = oWbk.Sheets(strNomFeuille)
TestExistenceFeuille = True
'Libère les variables et quitte
Set oSht = Nothing
oWbk.Close
oAppExcel.Quit
Set oWbk = Nothing
Set oAppExcel = Nothing
err:
End Function

"MichDenis" a écrit dans le message de news:
%
Le minimum que tu dois faire est de nous dire
pourquoi tu utilises cette macro....qu'est-ce que tu veux faire ?

Cette procédure doit s'appliquer dans un classeur où tu as la
fonction TestExistenceFeuille() ....Tu ne nous as pas donné le code !

Un nom d'un onglet d'une feuille ne doit pas avoir plus de 31 caractères
et
ne peut pas être vide non plus.
Certains caractères sont interdits dans la nomination des onglets d'une
feuille
* ? : [ ] /

si Cellule est vide ou contient des caractères interdits, ta macro va se
planter
ActiveSheet.Name = cellule.Value

'-------------------------------
Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select
For Each cellule In Range("G2:G" & Range("G65536").End(xlUp).Row)
If TestExistenceFeuille(cellule.Value, _
ActiveWorkbook.Path & "" & ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub
'-------------------------------


"claire_db" a écrit dans le message de news:

Je n'y connait rien en macro. On m'a dit de mettre ce code mais ca me met
un
message d'erreur et Activesheet surligné en jaune.
ci joint le code :

Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select

For Each cellule In Range("G24", Range("G24").End(xlDown).Address)
If TestExistenceFeuille(cellule.Value, ActiveWorkbook.Path & "" &
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub

Quelqu'un sait pourquoi? Merci d'avance





Avatar
MichDenis
La macro ne fait pas ce que tu dis...
un peu d'explications pour chacune des lignes de code...

'--------------------------------
Sub AjoutPages()

'Sauvegarde du classeur en débutant
ActiveWorkbook.Save

'Sélection de la page de garde
Sheets("page_de_garde").Select

'Pour toutes les cellules de la page G2:Gx
'G2:Gx -> ce sont les noms des feuilles que tu désires avoir
'qui devraient se retrouver là, et non pas le nombre de feuille à créer
For Each cellule In Range("G2:G" & Range("G65536").End(xlUp).Row)

'Un test pour savoir si le nom de la feuille existe déjà dans le classeur actif
If TestExistenceFeuille(cellule.Value, _
ActiveWorkbook.Path & "" & ActiveWorkbook.Name) = True Then
Else
'Si aucune feuille du nom de la cellule existe dans le classeur, il y
'a création du nom de la feuille, celle-ci est placée à la fin
Sheets.Add after:=Sheets(Sheets.Count)
'Baptème du nom de la feuille au contenu de la cellule
ActiveSheet.Name = cellule.Value
End If
'Retour à la page de garde pour effectuer la lecture de la seconde
'cellule de la page G2:Gx
Sheets("page_de_garde").Select
Next
End Sub
'--------------------------------

P.S. Il n'est pas étonnant que tu n'y arrive pas !




"claire_db" a écrit dans le message de news:
%
La macro sert à ajouter des feuilles dans le classeur Excel. Je rentre ds la
cellule "G21" (qui est dans la feuille "page_de_garde") le nombre de
feuilles à créer.
Voici la macro sub ajoutPages et la fonction : TestExistenceFeuille
Merci d'avance !

Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select

For Each cellule In Range("G21", Range("G21").End(xlDown).Address)
If TestExistenceFeuille(cellule.Value, ActiveWorkbook.Path & "" &
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub

Public Function TestExistenceFeuille(strNomFeuille As String, strNomFichier
As String) As Boolean
TestExistenceFeuille = False
On Error GoTo err
Dim oAppExcel As Excel.Application
Dim oWbk As Excel.Workbook
Dim oSht As Excel.Worksheet
'Lance Excel
Set oAppExcel = New Excel.Application
'Ouvre le classeur
Set oWbk = oAppExcel.Workbooks.Open(strNomFichier)
'Accède à la feuille
Set oSht = oWbk.Sheets(strNomFeuille)
TestExistenceFeuille = True
'Libère les variables et quitte
Set oSht = Nothing
oWbk.Close
oAppExcel.Quit
Set oWbk = Nothing
Set oAppExcel = Nothing
err:
End Function

"MichDenis" a écrit dans le message de news:
%
Le minimum que tu dois faire est de nous dire
pourquoi tu utilises cette macro....qu'est-ce que tu veux faire ?

Cette procédure doit s'appliquer dans un classeur où tu as la
fonction TestExistenceFeuille() ....Tu ne nous as pas donné le code !

Un nom d'un onglet d'une feuille ne doit pas avoir plus de 31 caractères
et
ne peut pas être vide non plus.
Certains caractères sont interdits dans la nomination des onglets d'une
feuille
* ? : [ ] /

si Cellule est vide ou contient des caractères interdits, ta macro va se
planter
ActiveSheet.Name = cellule.Value

'-------------------------------
Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select
For Each cellule In Range("G2:G" & Range("G65536").End(xlUp).Row)
If TestExistenceFeuille(cellule.Value, _
ActiveWorkbook.Path & "" & ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub
'-------------------------------


"claire_db" a écrit dans le message de news:

Je n'y connait rien en macro. On m'a dit de mettre ce code mais ca me met
un
message d'erreur et Activesheet surligné en jaune.
ci joint le code :

Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select

For Each cellule In Range("G24", Range("G24").End(xlDown).Address)
If TestExistenceFeuille(cellule.Value, ActiveWorkbook.Path & "" &
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub

Quelqu'un sait pourquoi? Merci d'avance





Avatar
LSteph
...
Pour l'explication, j'ai mis un post à 14h55...
Ta macro ajoute des feuilles, chez moi cela marche , mais...
avec les noms des feuilles de G24:g....
et non pas le nombre ...regardes celui de 15h20
te propose une solution.Peut-être ne se voit il pas...?
Sinon , savoir ce qui convient ou pas serait à minima...utile.

je remets au cas où...

..une solution sous réserve du reste du contexte

Sub AjoutPages()
Dim c as range
ActiveWorkbook.Save
Sheets("page_de_garde").Activate

For Each c In Range("G24", Range("G24").End(xlDown).Address)
If TestExistenceFeuille(c.Value, ActiveWorkbook.Path & "" & _
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
on error resume next
ActiveSheet.Name = left(c,31)
on error goto 0
End If
Sheets("page_de_garde").Activate
Next
End Sub

Cordialement.

lSteph

La macro sert à ajouter des feuilles dans le classeur Excel. Je rentre ds la
cellule "G21" (qui est dans la feuille "page_de_garde") le nombre de
feuilles à créer.
Voici la macro sub ajoutPages et la fonction : TestExistenceFeuille
Merci d'avance !

Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select

For Each cellule In Range("G21", Range("G21").End(xlDown).Address)
If TestExistenceFeuille(cellule.Value, ActiveWorkbook.Path & "" &
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub

Public Function TestExistenceFeuille(strNomFeuille As String, strNomFichier
As String) As Boolean
TestExistenceFeuille = False
On Error GoTo err
Dim oAppExcel As Excel.Application
Dim oWbk As Excel.Workbook
Dim oSht As Excel.Worksheet
'Lance Excel
Set oAppExcel = New Excel.Application
'Ouvre le classeur
Set oWbk = oAppExcel.Workbooks.Open(strNomFichier)
'Accède à la feuille
Set oSht = oWbk.Sheets(strNomFeuille)
TestExistenceFeuille = True
'Libère les variables et quitte
Set oSht = Nothing
oWbk.Close
oAppExcel.Quit
Set oWbk = Nothing
Set oAppExcel = Nothing
err:
End Function

"MichDenis" a écrit dans le message de news:
%
Le minimum que tu dois faire est de nous dire
pourquoi tu utilises cette macro....qu'est-ce que tu veux faire ?

Cette procédure doit s'appliquer dans un classeur où tu as la
fonction TestExistenceFeuille() ....Tu ne nous as pas donné le code !

Un nom d'un onglet d'une feuille ne doit pas avoir plus de 31 caractères
et
ne peut pas être vide non plus.
Certains caractères sont interdits dans la nomination des onglets d'une
feuille
* ? : [ ] /

si Cellule est vide ou contient des caractères interdits, ta macro va se
planter
ActiveSheet.Name = cellule.Value

'-------------------------------
Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select
For Each cellule In Range("G2:G" & Range("G65536").End(xlUp).Row)
If TestExistenceFeuille(cellule.Value, _
ActiveWorkbook.Path & "" & ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub
'-------------------------------


"claire_db" a écrit dans le message de news:

Je n'y connait rien en macro. On m'a dit de mettre ce code mais ca me met
un
message d'erreur et Activesheet surligné en jaune.
ci joint le code :

Sub AjoutPages()
ActiveWorkbook.Save
Sheets("page_de_garde").Select

For Each cellule In Range("G24", Range("G24").End(xlDown).Address)
If TestExistenceFeuille(cellule.Value, ActiveWorkbook.Path & "" &
ActiveWorkbook.Name) = True Then
Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = cellule.Value
End If
Sheets("page_de_garde").Select
Next
End Sub

Quelqu'un sait pourquoi? Merci d'avance