effacer une cellule par bouton

ccpapy

XLDnaute Impliqué
bonsoir à tous,
je cherche à effacer le contenu de 2 cellules en cliquant sur un bouton
qui me sert à créer une nouvelle feuille
j'ai également un deuzième problème que je n'arrive pas à résoudre
je vous joins l'exemple
merci à vous [file name=mdp.zip size=11655]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mdp.zip[/file] ;)

Message édité par: ccpapy, à: 10/10/2005 19:46
 

Pièces jointes

  • mdp.zip
    11.4 KB · Affichages: 29
  • mdp.zip
    11.4 KB · Affichages: 34
  • mdp.zip
    11.4 KB · Affichages: 34

deudecos

XLDnaute Impliqué
Bonsoir Ccpapy, le forum,

Je ne suis pas sur que ce soit ce que tu veux, mais je tente, on verra bien ;)

Bonne soiree

Olivier [file name=mdpv01.zip size=9673]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mdpv01.zip[/file]
 

Pièces jointes

  • mdpv01.zip
    9.4 KB · Affichages: 29

ccpapy

XLDnaute Impliqué
bonsoir deudecos, le forum
désolé, ça ne va pas, en fait il faut garder les données sur la première feuille et les effacer seulement sur la nouvelle .

de plus quand les utilisateurs travaillent dans le même mois, ton fichier renomme bien l'onglet en 'même date(2)', mais l'inconvénient, c'est que la macro ne fonctiionne plus pour les feuilles qui suivront (renommer avec b1)

dommage, je cherche encore, merci quand même
 

ccpapy

XLDnaute Impliqué
encore moi,
par contre tu m'as donné l'indication pour effacer les données, ça donne ça
:)

Private Sub CommandButton1_Click()
'Dim Name As String
Name = Format(Range('B1'), 'mm yy')

'copie la dernière feuille et place cette copie en dernier
Sheets(Sheets.Count).Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(Range('D1'), 'mm yy')
'
Sheets(Sheets.Count).Range('c4').ClearContents
Sheets(Sheets.Count).Range('b1').ClearContents


End Sub
c'est déja ça de trouver, à+ et merci
 

ccpapy

XLDnaute Impliqué
bonsoir le forum,
j'ai une solution mais je n'arrive pas à la traduire sur la macro
il faudrait changer le format de l'onglet si les cellules b1 de 2 feuilles ont les memes mois et année
si un pro passe par là...
merci [file name=mdp_20051012211050.zip size=12507]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mdp_20051012211050.zip[/file]
 

Pièces jointes

  • mdp_20051012211050.zip
    12.2 KB · Affichages: 23

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir CcPapy, Olivier, le Forum

J'ai un peu regardé, c'est assez 'casse pied' comme problème... J'ai essayé différents 'babartrucs' en voici un qui est plutot une usine à gaz peu fiable si tu traffiques plusieurs fois sur les même dates... :

Option Explicit
Option Compare Text

Sub TheSheetCreator()
Dim WS As Worksheet
Dim WSNameOld As String
Dim WSNameNew As String
Dim WSActive As Byte
Dim IncrementNew As Byte
Dim IncrementOld As Byte

WSNameOld = Format(Range('B1'), 'mmm yy')
WSNameNew = Format(Range('D1'), 'mmm yy')


If Not IsDate(WSNameOld) Or Not IsDate(WSNameNew) Then
    MsgBox 'Pas de date valide sur la feuille active en B1 ou D1', vbCritical
   
Exit Sub
End If

For Each WS In ThisWorkbook.Worksheets
   
If CheckWSName(CStr(WS.Name)) = WSNameOld Then
        IncrementOld = IncrementOld + Val(Right(CStr(WS.Name), 1))
'        IncrementOld = IIf(Val(Right(WS.Name, 1)) = IncrementOld, IncrementOld = IncrementOld + Val(Right(WS.Name, 1)), IncrementOld)
   
End If
   
If CheckWSName(CStr(WS.Name)) = WSNameNew Then
        IncrementNew = IncrementNew + Val(Right(CStr(WS.Name), 1))
'        IncrementNew = IIf(Val(Right(WS.Name, 1)) = IncrementNew, IncrementNew = IncrementNew + Val(Right(WS.Name, 1)), IncrementNew)
   
End If
Next


   
With ActiveSheet
        .Name = Format(WSNameOld, 'mmm yy') & ' V-' & IncrementOld
        .Copy after:=Worksheets(Worksheets.Count)
   
End With
   
   
With ActiveSheet
        .Name = Format(WSNameNew, 'mmm yy') & ' V-' & IncrementNew
        .Range('C4, B1').ClearContents
   
End With
   
End Sub

Function CheckWSName(ByVal WSName As String) As String
    CheckWSName = CStr(Left(WSName, InStr(1, WSName, 'V-', 1) - 2))
End Function


Mais finalement, je crois que je me suis un peu perdu et égaré dans un délire, mais ce n'est pas grave ça détend ;)

Sinon une approche bien plus simple qui ne te posera bien moins de soucis :


Option Explicit

Sub TheSheetCreator()
Dim WS As Worksheet
Dim WSNameOld As String
Dim WSNameNew As String

WSNameOld = Format(Range('B1'), 'mmm yy')
WSNameNew = Format(Range('D1'), 'mmm yy')


If Not IsDate(WSNameOld) Or Not IsDate(WSNameNew) Then
    MsgBox 'Pas de date valide sur la feuille active en B1 ou D1', vbCritical
   
Exit Sub
End If


   
With ActiveSheet
        .Name = Format(WSNameOld, 'mmm yy') & ' V-' & Worksheets.Count
        .Copy after:=Worksheets(Worksheets.Count)
   
End With
   
   
With ActiveSheet
        .Name = Format(WSNameNew, 'mmm yy') & ' V-' & Worksheets.Count
        .Range('C4, B1').ClearContents
   
End With
   
End Sub

Je pense que ce devrait suffir amplement.

Bonne Soirée
[ol]@+Thierry[/ol]
 

ccpapy

XLDnaute Impliqué
sympa thierry, salut le forum,
problème: les feuilles sont nommées comme la premiere au 2ème tour, c'est pas encore ça :eek:

sinon, j'ai simplifié:
j'ai tout simplement mis en format 'dd mm yy' :)

:huh: les onglets seront un peu plus larges. mais bon.
comme ça j'arrete de me tracasser. (adjugé-vendu)
merci à vous et bonne nuit.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11