Améliorer code [Résolu/Fermé]

Signaler
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016
-
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016
-
Bonjour
le premier sujet
Dans mon userform saisie avant de faire une nouvelle saisie je clic sur insérer une nouvelle ligne qui va copier sur la feuille copy la ligne 2 et la colle dans la feuille deq en dessous du dernier N° de la colonne A
Comment améliorer le code Sub Macro1()
2) peut on associer des formules sur des formulaires


Sub Macro1()
'
Sheets("deq").Select
Sheets("copy").Visible = True
Sheets("copy").Select
Rows("2:2").Select
Selection.Copy
Sheets("deq").Select
ActiveSheet.Paste
Sheets("copy").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("deq").Select
End Sub

Merci

7 réponses

Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
528
Bonjour,

Premier sujet
Sub Macro1()
Sheets("copy").Rows("2:2").Copy Sheets("deq").Range("A" & Rows.Count).End(xlUp).Offset(1)
End Sub


Deuxième sujet :
Désolé, je ne comprends pas ta question.

A+
Messages postés
17410
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 juillet 2021
4 668
Bonjour,

sans trop bouger ton code, mais la question que je me pose, comment fais tu pour saisir une donnée en ligne 2 de ta feuille copy qui est masquée

Sub Macro1()
Sheets("copy").Visible = True
Sheets("copy").Rows("2:2").Copy
Sheets("deq").Select
[A65536].End(xlUp)(2, 1).Select
ActiveSheet.Paste
Sheets("deq").Select
Sheets("copy").Visible = False
Application.CutCopyMode = False
End Sub

Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
50
Bonjour,

Le code comme ça ne peux pas marcher car "en dessous du dernier N° de la colonne A" n'a pas été pris en compte.

Une proposition :

Sub TEST()

Dim DL As Long

DL = Sheets("deq").Cells(Application.Rows.Count, 1).End(xlUp).Row

Sheets("copy").Rows(2).Copy

Sheets("deq").Activate

ActiveSheet.Rows(DL + 1).PasteSpecial

Application.CutCopyMode = False

Sheets("deq").Activate

Range("A1").Select

End Sub


Cordialement.
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
50
Bonjour Gyrus,

Merci, je ne comprend pas trop....
Messages postés
17410
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 juillet 2021
4 668 >
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019

Bonjour Kuartz,

un plaisantin avait mis -1 pour ton code alors qu'il fonctionne parfaitement et Gyrus a aimablement remis le compteur à zéro et comme cela c'est fait très vite tu n'as pas eu le temps de voir
Cordialement
Messages postés
17410
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
25 juillet 2021
4 668
Salut Gyrus,

tu as bien fait, si je l'avais vu plus tôt j'aurai fait la même chose, c'est pas comme cela qu'on agit avec des bénévoles surtout avec un code qui fonctionne parfaitement.
Cordialement
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016

Bonjour
Quelle différence avec le code par rapport au votre les deux font la même chose
Sub Macro1()
Sheets("copy").Rows("2:2").Copy Sheets("deq").Range("A" & Rows.Count).End(xlUp).Offset(1)
End Sub
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
50
J'ai écris mon code avant de voir les codes qui avaient déjà été donnés. Voilà pourquoi il n'y a pas de différence. J'ai juste préféré passer par une variable pour déterminer la dernière ligne, pour plus de clarté.
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016

Bonjour
pour le deuxième sujet abandonné la macro répond a mon attente
Sub Macro1()
Sheets("copy").Rows("2:2").Copy Sheets("deq").Range("A" & Rows.Count).End(xlUp).Offset(1)
End Sub

Mais une autre question dans un userform la comboxbox1 est une liste à partir de la colonne G qui sont des mois (mars mars avril avril avril etc) est dans la textbox1 je met un nombre qui sera diffusé dans la colonne AC par rapport au mois choisi de la combobox1
faisable ou pas
le cas échéant je peut joindre le fichier
merci
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
528
Si je comprends bien, tu souhaites inscrire dans la colonne AC la valeur de la TextBox1, la position de la cellule dans la colonne AC étant déterminée selon la sélection effectuée dans la ComboBox1.
Cela ne doit pas poser de problème particulier. Il faut que tu joignes un fichier exemple.

A+
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016

Re
c'est dans usferform1
PJ https://www.cjoint.com/c/EJfjbtfCcMl
je sais que les codes de certain userforms ne sont pas au top
et que peut être avec le fichier vous comprendrez mieux le 2 sujets du premier post
merci
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
528
Est-ce que tu souhaites affecter la quantité sur toutes les lignes qui correspondent au mois choisi ?

A+
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016

Oui cela fonctionne la combo pour les mois sont dans l'ordre
mais sur mon fichier final c'est en désordre
https://www.cjoint.com/c/EJfotIack8l
sans quoi c'est ca que je recherché
Un grand merci
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016
>
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016

les mois sont dans l'ordre que si il y a qu'une année 2015 s'il y a des mois 2014 c'est dans le désordre
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016

J'ai ajouté une deuxième combobox pour sélectionner l'année en plus, chose que je n'avais pas penser
pour résumer je choisi le mois et l'année et ensuite le NB avant de valider
https://www.cjoint.com/c/EJfo3J1inol
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
528 >
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016

Si tu souhaites renseigner la quantité en fonction du mois et de l'année, tu as tout intérêt à utiliser directement la date de création en colonne D.
Un exemple :
https://www.cjoint.com/c/EJfprCCb4WI

A+
Messages postés
29
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
26 décembre 2016
>
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016

oK
Bonne idée moi j'étais parti sur le format du mois du type =TEXTE(D3;"mmmm") & " " & TEXTE(D3;"aaaa")
les deux fonctionne
sujet est résolu un grand merci