Code VBA pour onglet en doublon
Résolu
gilou
-
gilou -
gilou -
Bonjour,
voici mon petit probleme de code vba
j'ai crée le code suivant qui renomme l'onglet
private...............
if range("a1")="" then exit sub
activesheet. name = range("a1"). text (text c'est la date)
end sub
comme il s'agit de main courante et , qu'il peut y en avoir lplusieurs le meme jour j'ai pensé à inter caler une ligne qui permettrai de signaler l'erreur par un (msg box) qui proposerai de modifier la saisie ;par exmple
feuille 1 renommée en 01/01/2010
feuille2 pas de chance ,elle tombe à la meme date donc msgbox qui propose " cette date est deja utilisée je vous propose 01/01/2010 2 puis ok
si par hasard il y en a 3 => 01/01/2010 3 et ainsi de suite
deja merci
voici mon petit probleme de code vba
j'ai crée le code suivant qui renomme l'onglet
private...............
if range("a1")="" then exit sub
activesheet. name = range("a1"). text (text c'est la date)
end sub
comme il s'agit de main courante et , qu'il peut y en avoir lplusieurs le meme jour j'ai pensé à inter caler une ligne qui permettrai de signaler l'erreur par un (msg box) qui proposerai de modifier la saisie ;par exmple
feuille 1 renommée en 01/01/2010
feuille2 pas de chance ,elle tombe à la meme date donc msgbox qui propose " cette date est deja utilisée je vous propose 01/01/2010 2 puis ok
si par hasard il y en a 3 => 01/01/2010 3 et ainsi de suite
deja merci
A voir également:
- Code VBA pour onglet en doublon
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Rouvrir onglet fermé chrome - Guide
2 réponses
Où est la question ?
Personnellement, je n'afficherais pas de MsgBox : s'il y a 50 mains courantes à une date donnée, j'aurais des craintes pour les nerfs de l'utilisateur ; j'utiliserais un incrément automatique.
Personnellement, je n'afficherais pas de MsgBox : s'il y a 50 mains courantes à une date donnée, j'aurais des craintes pour les nerfs de l'utilisateur ; j'utiliserais un incrément automatique.
Salut,
Tu boucles sur toutes le feuilles du classeur en incrémentant une variable compteur lorsque VB trouve la valeur en D6 :
Tu boucles sur toutes le feuilles du classeur en incrémentant une variable compteur lorsque VB trouve la valeur en D6 :
Dim ws As Worksheet Dim cpt As Integer Dim valeur As String valeur = ActiveSheet.Range("D6").Value For Each ws In ThisWorkbook.Worksheets If ws.Range("D6") = valeur Then cpt = cpt + 1 End If Next If cpt = 1 then ActiveSheet.Name = Range("D6").Text Else ActiveSheet.Name = Range("D6").Text & " " & cpt End If
bonjour et merci
après qques soucis d'instllation car toutes mes feuilles n'etaient pas vierges en d6 a cause d'essais , le resultat est bon par precaution j'ai rajouté une lgne avec " if range("d6")= "" then exit sub ainsi je n'ai plus de message d'erreur , tu peux mettre en resolu encore merci et bonne journée
après qques soucis d'instllation car toutes mes feuilles n'etaient pas vierges en d6 a cause d'essais , le resultat est bon par precaution j'ai rajouté une lgne avec " if range("d6")= "" then exit sub ainsi je n'ai plus de message d'erreur , tu peux mettre en resolu encore merci et bonne journée
d'accord ;alors peux tu me fournir une solution d'incrementation automatique car j'ai essayé
en utilisant la fonction si en concatainant un n° mais je perd le format date
sinon au pire des cas indique moi comment rediger en VBA : " si la valeur d6 de la feuille active corrspond au nom de la feuille precedente alors valeur d6 & (c'est la que çà se complique): nb de feuil portant la valeur d6 de la la feuil acitve +1 ; de maniere a obtenir la meme date que la feuille precedente & 1ou 2 ou 3 selon
ps il n'y a jamais plus de 10 feuilles renommées
merci a+