Effectuer le code qu'une seule fois
Résolu
vieuxray
-
vieuxray -
vieuxray -
Bonjour a toutes et tous, Forum bonjour
Excel 2007 VBA
Avec le code ci-dessous le premier de chaque mois je déplace d'une colonne vers la droite.
le code fonctionne bien, seulement un petit soucis m'ennuie un peu.
le code est placer dans "Userform initialize"
Une première mise a jour s'est bien effectuer a la première ouverture de mon fichier ce matin.
Mais maintenant le code s'effectue a chaque initialisation de USF
Bon en fait, c'est normal puisque nous sommes le 01 février.
Mais comment faire pour que cette remise a jour ne s'effectue qu'une seule et unique fois
Merci a vous et de votre temps
Bonne après midi et merci
Cdlt Ray
Excel 2007 VBA
Avec le code ci-dessous le premier de chaque mois je déplace d'une colonne vers la droite.
le code fonctionne bien, seulement un petit soucis m'ennuie un peu.
le code est placer dans "Userform initialize"
Une première mise a jour s'est bien effectuer a la première ouverture de mon fichier ce matin.
Mais maintenant le code s'effectue a chaque initialisation de USF
Bon en fait, c'est normal puisque nous sommes le 01 février.
Mais comment faire pour que cette remise a jour ne s'effectue qu'une seule et unique fois
Merci a vous et de votre temps
Bonne après midi et merci
Cdlt Ray
'*** RECOPIER LES COLONNES ET LIGNES LE PREMIER JOUR DE CHAQUE MOIS AUTOMATIQUEMENT *****************
With Sheets("Compte")
With Cells(18, Month(Date) + 3).Resize(9, 1) 'Date déclenchement changement de colonne mensuel
If Month(Date) > 1 Then
.Copy .Offset(0, 1)
.SpecialCells(xlCellTypeConstants, 23).ClearContents
End If
End With
End With
A voir également:
- Effectuer le code qu'une seule fois
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Code activation windows 10 - Guide
17 réponses
Bonjour,
Bon en fait, c'est normal puisque nous sommes le 01 février. Non, c'est parce que vous avez ecrit ceci:
If Month(Date) > 1 Then si le numero du mois en cours est supperieur a 1, donc a chaque fois que vous allez ouvrir l'UF vous aurez le code qui va s'executer
Bon en fait, c'est normal puisque nous sommes le 01 février. Non, c'est parce que vous avez ecrit ceci:
If Month(Date) > 1 Then si le numero du mois en cours est supperieur a 1, donc a chaque fois que vous allez ouvrir l'UF vous aurez le code qui va s'executer
Bonjour Ray, bonjour f894009
Peut être manque-t-il l'information comme quoi la mise à jour a été faite et ne doit pas être une nouvelle fois exécutée ?
;0)
Peut être manque-t-il l'information comme quoi la mise à jour a été faite et ne doit pas être une nouvelle fois exécutée ?
;0)
Re,
Private Sub UserForm_Initialize()
'*** RECOPIER LES COLONNES ET LIGNES LE PREMIER JOUR DE CHAQUE MOIS AUTOMATIQUEMENT *****************
With Sheets("Compte")
If Month(Date) <> .Range("B24") Then
.Range("B24") = Month(Date)
With .Cells(18, Month(Date) + 3).Resize(9, 1) 'Date déclenchement changement de colonne mensuel
.Copy .Offset(0, 1)
.SpecialCells(xlCellTypeConstants, 23).ClearContents
End With
End If
End With
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Entre temps, j'ai rectifie l'empilage du code. Ceci au cas ou vous avez plusieurs onglets et que vous ayez selectionne un autre onglet, Range("B24") sera celle de l'onglet selectionne et .Range("B24") sera celle du With Sheets("Compte")
Entre temps, j'ai rectifie l'empilage du code. Ceci au cas ou vous avez plusieurs onglets et que vous ayez selectionne un autre onglet, Range("B24") sera celle de l'onglet selectionne et .Range("B24") sera celle du With Sheets("Compte")
Private Sub UserForm_Initialize()
'*** RECOPIER LES COLONNES ET LIGNES LE PREMIER JOUR DE CHAQUE MOIS AUTOMATIQUEMENT *****************
With Sheets("Compte")
If Month(Date) <> .Range("B24") Then
.Range("B24") = Month(Date)
With .Cells(18, Month(Date) + 3).Resize(9, 1) 'Date déclenchement changement de colonne mensuel
.Copy .Offset(0, 1)
.SpecialCells(xlCellTypeConstants, 23).ClearContents
End With
End If
End With
End Sub
Re,
Mais comment Excel se repère pour savoir qu'on est le premier du mois ??? le mois change le premier jour du mois suivant, donc il suffit de tester le changement de mois par Month(Date): mois(date en cours)
Mais comment Excel se repère pour savoir qu'on est le premier du mois ??? le mois change le premier jour du mois suivant, donc il suffit de tester le changement de mois par Month(Date): mois(date en cours)
Salut f894009,
Merci pour la réponse, c'est gentil
J'ai bien compris la réponse , j'ai pourtant bien fait des modifs a ce niveau mais ca ne change rien
Comment svp modifier le test
Merci pour l'aide
Cdlt Ray
Merci pour la réponse, c'est gentil
J'ai bien compris la réponse , j'ai pourtant bien fait des modifs a ce niveau mais ca ne change rien
Comment svp modifier le test
Merci pour l'aide
Cdlt Ray
Salut f894009
Merci pour la réponse bien matinal
J'ai bien compris mais je ne sais pas comment faire
j'ai essayer de faire une macro a part pour éxécuter le bout de code.
Afin de sortir le bout de code de "userform initialise" ce qui éviterai qu'a chaque mise a jour de l'Usf que ca redéclenche le code.
mais je ne suis pas arriver
Merci pour ton aide, bon Dimanche
Cdlt Ray
Merci pour la réponse bien matinal
J'ai bien compris mais je ne sais pas comment faire
j'ai essayer de faire une macro a part pour éxécuter le bout de code.
Afin de sortir le bout de code de "userform initialise" ce qui éviterai qu'a chaque mise a jour de l'Usf que ca redéclenche le code.
mais je ne suis pas arriver
Merci pour ton aide, bon Dimanche
Cdlt Ray
Re,
Merci pour ta réponse et le fichier exemple, j'ai tester et ca m'a l'air de fonctionner
j'ai simuler le mois (Mars) prochain en modifiant l'horloge de mon PC et ca marche en éxécutant qu'une seule fois le bout de code.
j'ai mis en B24 de ma feuil(Compte) la valeur (2) et modifier le code comme ci-dessous
je pense que c'est bon quand pense tu svp ???
Mais je me pose une question, comment ca va se passer pour la fin de l'année
passer de Décembre 2014 a Janvier 2015
Merci pour ton aide
A plus tard
Ray
Merci pour ta réponse et le fichier exemple, j'ai tester et ca m'a l'air de fonctionner
j'ai simuler le mois (Mars) prochain en modifiant l'horloge de mon PC et ca marche en éxécutant qu'une seule fois le bout de code.
j'ai mis en B24 de ma feuil(Compte) la valeur (2) et modifier le code comme ci-dessous
je pense que c'est bon quand pense tu svp ???
Mais je me pose une question, comment ca va se passer pour la fin de l'année
passer de Décembre 2014 a Janvier 2015
Merci pour ton aide
A plus tard
Ray
With Sheets("Compte")
With Cells(18, Month(Date) + 3).Resize(9, 1)
If Month(Date) <> Range("B24") Then
.Copy .Offset(0, 1)
.SpecialCells(xlCellTypeConstants, 23).ClearContents
Range("B24") = Month(Date)
End If
End With
End With
Re
Merci pour les corrections pourtant, je viens de regarder mon programme fonctionne sans les points que tu me dit de rajouter.
et pour la question svp.
Mais je me pose une question, la cellule B24 va augmenter de 1 tous les mois
comment ca va se passer pour la fin de l'année pour
passer de Décembre 2014 a Janvier 2015
merci a toi
Ray
Merci pour les corrections pourtant, je viens de regarder mon programme fonctionne sans les points que tu me dit de rajouter.
et pour la question svp.
Mais je me pose une question, la cellule B24 va augmenter de 1 tous les mois
comment ca va se passer pour la fin de l'année pour
passer de Décembre 2014 a Janvier 2015
merci a toi
Ray
Re
Merci pour le fichier, j'ai effectivement 4 onglets dans mon programme
alors d'après mes essais ça a l'air de bien fonctionner.
Svp, Que veut dire plus excatement ( l'empilage du code )
a plus tard et merci
Ray
Merci pour le fichier, j'ai effectivement 4 onglets dans mon programme
alors d'après mes essais ça a l'air de bien fonctionner.
Svp, Que veut dire plus excatement ( l'empilage du code )
a plus tard et merci
Ray
Re,
Svp, Que veut dire plus excatement ( l'empilage du code )
Il est plus logique de faire le test de changement de mois avant toutes instructions qui seraient executees si il y a changement de mois.
Svp, Que veut dire plus excatement ( l'empilage du code )
Il est plus logique de faire le test de changement de mois avant toutes instructions qui seraient executees si il y a changement de mois.
Bonsoir f894009,
Merci pour ta réponse, je comprends mieux.
juste une dernière question si tu veux bien.
je n'ai plus le code ci-dessous qui déclenchai mon déplacement de colonne en début du mois.
par contre a la place j'ai la cellule B24 ou j'ai mis 2
qui s'incrémente toute seule a chaque changement de mois
je pense que 2 corresponds a février, 3 a mars etc etc
Mais comment Excel se repère pour savoir qu'on est le premier du mois ???
Merci Ray
Merci pour ta réponse, je comprends mieux.
juste une dernière question si tu veux bien.
je n'ai plus le code ci-dessous qui déclenchai mon déplacement de colonne en début du mois.
If Month(Date) > 1
par contre a la place j'ai la cellule B24 ou j'ai mis 2
qui s'incrémente toute seule a chaque changement de mois
je pense que 2 corresponds a février, 3 a mars etc etc
Mais comment Excel se repère pour savoir qu'on est le premier du mois ???
Merci Ray
Re,
Merci beaucoup la réponse est plus que satisfaisante
Et si je souhaitai changer la date en mettant le 22 de chaque mois a la place du premier du mois
le code serai modifier comment, cela m'interresse beaucoup de savoir comment fonctionne les tests sur les dates
Merci a toi
Ray
Merci beaucoup la réponse est plus que satisfaisante
Et si je souhaitai changer la date en mettant le 22 de chaque mois a la place du premier du mois
le code serai modifier comment, cela m'interresse beaucoup de savoir comment fonctionne les tests sur les dates
Merci a toi
Ray
Re f894009
Merci beaucoup pour toutes ces informations, ca va bien me servir.
Bon sinon pour moi c'est bon ca fonctionne très bien.
je te souhaite une excellente soirée et bon début de semaine pour demain.
Avec tous mes remerciements pour ton aide et ton savoir.
Tu m'a déja beaucoup aider je t'en remercie encore.
Bye bye a bientot sans doute
Bien Cordialement Raymond
Merci beaucoup pour toutes ces informations, ca va bien me servir.
Bon sinon pour moi c'est bon ca fonctionne très bien.
je te souhaite une excellente soirée et bon début de semaine pour demain.
Avec tous mes remerciements pour ton aide et ton savoir.
Tu m'a déja beaucoup aider je t'en remercie encore.
Bye bye a bientot sans doute
Bien Cordialement Raymond