VBA DTPicker a copier sur plusieurs feuilles

  • Initiateur de la discussion Initiateur de la discussion Jean P
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Jean P

Guest
Bonjour à tous

J'ai un petit problème sur lequel je bloque.

Situation:
a) à l'aide d'un usf (déja fait)
b) je choisi une date (DTPicker - déja fait)
c) et je dois la copier sur plusieurs feuilles du classeur cible
d) a chaque jour je recommence la même macro, donc la date doit changer de colonne à chaque fois

Problème:
a) j'ai un message d'erreur 91 - Variable objet ou variable de bloc With non définie
b) et le débogeur m'amène à la ligne : WSname = WS.Name

Voici ce que j'ai fait pour l'instant (et ce, en adpatant différentes solutions trouvés sur le forum ):

Private Sub CommandButton1_Click()
Dim WBCible As Workbook
Dim WS As Worksheet
Dim WSname As String
Dim Jour As Variant
Set WBCible = Workbooks("Historique cartierville.xls")
Jour = DateValue(DTPicker1.Value)
WSname = WS.Name
With WBCible.Sheets(WSname)
Jour.Copy .Cells(15, .Range("IV15").End(xlToLeft).Column + 1)
End With
Exit Sub
Unload Me
End Sub


Merci pour votre aide


Jean P
 
bonjour

tu n'as pas défini l'objet WS/

utilises par exemple par exemple :
set WS=worksheets("feuilledujour")


je regarde le reste de ton code, et tu vas me dire si je l'ai bien compris

Jour.Copy .Cells(15, .Range("IV15").End(xlToLeft).Column + 1)
=> cette instruction est censée recopier la date sélectionnée en ligne 15 après la dernière colonne non vide.
MAIS, jour n'est pas une cellule !
il faut plutôt écrire :
.Cells(15, .Range("IV15").End(xlToLeft).Column + 1).value=Jour


bonne fin de journée
 
Bonjour Jean, STéphane, le Forum

Juste un petit coucou à STéphane que je ne voyais plus depuis un bail.

Ah oui quand même par rapport au code de Jean, tu as tout à fait raison pour le "Jour" Stéphane, et aussi pour la variable WS (Worksheet) car elle n'est pas initialisée du tout... Donc WS.Name d'où le message d'erreur... Soit il te manque la boucle du style :
For Each WS in WBCible.WorkSheets
Soit il manque autre chose... Comme proposé par Stéphane, mais si c'est juste pour une feuille tu pourrais aller plus directement...

Et aussi à quoi sert le Exit Sub avant le Unload Me ... (?)

Bonne Fin de Journée
@+Thierry
 
Bonjour à vous deux et au forum

Je vous remercie grâce à vos commentaires j'ai résolu mon problème.

Stéphane tu avais parfaitement compris pour la copie de la date dans la dernière colonne vide.

Thierry avais raison, j'avais oublié la boucle For each WS ...

Voici les correction que j'ai apporté et cela fonctionne parfaitement:

Private Sub CommandButton1_Click()
Dim WBCible As Workbook
Dim WS As Worksheet
Dim WSname As String
Dim Jour As Variant
Set WBCible = Workbooks("Historique cartierville.xls")
Jour = DateValue(DTPicker1.Value)
For Each WS In WBCible.Worksheets
WSname = WS.Name
With WBCible.Sheets(WSname)
.Cells(15, .Range("IV15").End(xlToLeft).Column + 1).Value = Jour
End With
Next
Unload Me
End Sub

Encore une fois merci

Jean P
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
214
Réponses
9
Affichages
588
Réponses
2
Affichages
515
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
652
Réponses
5
Affichages
480
Retour