Bonjour à tous,
Je cherche à optimiser un code assez long qui me fait malgré tout gagné beaucoup de temps.
Dans les grandes lignes :
je rempli un formulaire où il y a une cinquantaine de cellules non contiguës
quand je lance ma macro
elle rempli une base de donnée avec l'ensemble des 50 cellules
elle rempli un autre formulaire avec une partie des 50 cellules
j'enregistre mes 2 formulaires (uniquement les onglets en question) dans 2 fichiers distincts
je les imprimes en PDF
Ma démarche est avant tout d'améliorer la lecture du code que j'essaye de simplifier plus que dans le gain de temps. Si j'arrive à coordonner les 2 ce sera magnifique. Avec ces recherches j'essaye aussi de m'enrichir au niveau de mes maigres connaissances en programmation.
J'ai donc quelques questions pour vous :
J'ai actuellement quelques chose de la sorte :
tata = range ("b7").value
toto = range ("j9").value
titi = range ("p12").value
tutu = range ("w24").value
ligne = sheets("blabla").range("A3").end(xldown).row + 1
cells (ligne,1).value =toto
cells (ligne,2).value = tutu
cells (ligne,3).value = titi
cells(ligne,4).value = tata
Je recopie des formules, des mises en forme
If checbox1.value = true then
with sheets("bloblo")
.range("A4") = titi
.range("B8")= tutu
.range("C15") = tata
end with
J'enregistre mes 2 onglets séparément
range ("b7").value =""
range ("j9").value =""
range ("p12").value =""
range ("w24").value =""
est ce que je suis obligé de passer par with ... end with avec ma condition?
malgré cette condition est ce que je peux regrouper le remplissage de mes 2 onglets en une ligne pour la même donnée ? par exemple
sheets("bloblo").range("A4").value = cells (ligne,3).value =titi
est ce que si je nomme mes 50 cellules donnée1 donnée2 donnée3... je peux faire une boucle et surtout comment l'écrire, j'ai essayer la solution ci-dessous mais ça ne marche pas :
For i = 1 To 50
Sheets("blabla").Cells(ligne, i) = donnée & i.Value
Next i
Merci d'avance pour vos réponses.
Bonne journée à tous.
Jack
Je cherche à optimiser un code assez long qui me fait malgré tout gagné beaucoup de temps.
Dans les grandes lignes :
je rempli un formulaire où il y a une cinquantaine de cellules non contiguës
quand je lance ma macro
elle rempli une base de donnée avec l'ensemble des 50 cellules
elle rempli un autre formulaire avec une partie des 50 cellules
j'enregistre mes 2 formulaires (uniquement les onglets en question) dans 2 fichiers distincts
je les imprimes en PDF
Ma démarche est avant tout d'améliorer la lecture du code que j'essaye de simplifier plus que dans le gain de temps. Si j'arrive à coordonner les 2 ce sera magnifique. Avec ces recherches j'essaye aussi de m'enrichir au niveau de mes maigres connaissances en programmation.
J'ai donc quelques questions pour vous :
J'ai actuellement quelques chose de la sorte :
tata = range ("b7").value
toto = range ("j9").value
titi = range ("p12").value
tutu = range ("w24").value
ligne = sheets("blabla").range("A3").end(xldown).row + 1
cells (ligne,1).value =toto
cells (ligne,2).value = tutu
cells (ligne,3).value = titi
cells(ligne,4).value = tata
Je recopie des formules, des mises en forme
If checbox1.value = true then
with sheets("bloblo")
.range("A4") = titi
.range("B8")= tutu
.range("C15") = tata
end with
J'enregistre mes 2 onglets séparément
range ("b7").value =""
range ("j9").value =""
range ("p12").value =""
range ("w24").value =""
est ce que je suis obligé de passer par with ... end with avec ma condition?
malgré cette condition est ce que je peux regrouper le remplissage de mes 2 onglets en une ligne pour la même donnée ? par exemple
sheets("bloblo").range("A4").value = cells (ligne,3).value =titi
est ce que si je nomme mes 50 cellules donnée1 donnée2 donnée3... je peux faire une boucle et surtout comment l'écrire, j'ai essayer la solution ci-dessous mais ça ne marche pas :
For i = 1 To 50
Sheets("blabla").Cells(ligne, i) = donnée & i.Value
Next i
Merci d'avance pour vos réponses.
Bonne journée à tous.
Jack