Problème code macro
Résolu
didsyl
Messages postés
50
Statut
Membre
-
didsyl Messages postés 50 Statut Membre -
didsyl Messages postés 50 Statut Membre -
Bonjour à tous,
je reviens encore une fois vers vous pour un problème de code macro.
Je ne maîtrise pas du tout le codage, je travaille donc toujours en "enregistrant" une macro...
Dans celle reprise ci-dessous, au fur et à mesure de mon travail, j'ajoute des lignes dans mon tableau. je voudrais donc que la ligne "Range("AJ19:$AJ$34").Select" aille en fait jusqu'à la fin de mon tableau en tenant compte des lignes insérées. J'ai essayé en mettant des $ devant AJ et 34 mais cela ne change rien.
Y aurait-il un code qui lui dirai d'aller jusqu'à la dernière ligne du tableau?
Merci d'avance à ceux qui se pencheront sur mon problème.
Sub modificationcelluletotal()
'
' modificationcelluletotal Macro
'
'
ActiveSheet.Unprotect
Range("AJ19:AL19").Select
Selection.Copy
Range("AJ19:$AJ$34").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A26").Select
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
je reviens encore une fois vers vous pour un problème de code macro.
Je ne maîtrise pas du tout le codage, je travaille donc toujours en "enregistrant" une macro...
Dans celle reprise ci-dessous, au fur et à mesure de mon travail, j'ajoute des lignes dans mon tableau. je voudrais donc que la ligne "Range("AJ19:$AJ$34").Select" aille en fait jusqu'à la fin de mon tableau en tenant compte des lignes insérées. J'ai essayé en mettant des $ devant AJ et 34 mais cela ne change rien.
Y aurait-il un code qui lui dirai d'aller jusqu'à la dernière ligne du tableau?
Merci d'avance à ceux qui se pencheront sur mon problème.
Sub modificationcelluletotal()
'
' modificationcelluletotal Macro
'
'
ActiveSheet.Unprotect
Range("AJ19:AL19").Select
Selection.Copy
Range("AJ19:$AJ$34").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A26").Select
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Configuration: Macintosh / Safari 14.0.3
2 réponses
-
Bonjour,
Si dans ton montage, la colonne A est la dernière ligne remplie (sinon, changer la lettre A en B ou autres)Range("AJ19:$AJ"&Range("A" & Rows.Count).End(xlUp).Row).Select-
Bonjour et merci pour cette réponse,
Elle fonctionne mais pas tout à fait. Je m'explique:
La macro copie bien les formules dans les nouvelles lignes insérée, mais elle ajoute des lignes dans le bas de mon tableau ( en dessous de ma dernière ligne) . Ne comprenant pas trop ce langage, je ne vois pas ce que je devrais modifier.
Je ne comprend pas bien ce que vous voulez dire avec
"la colonne A est la dernière ligne remplie (sinon, changer la lettre A en B ou autres)"
Mon tableau commence en A19 et fini en AL19 pour les colonnes.
Le nombre de ligne varient en fonction du nombre de lignes insérées (en provenance d'un autre tableau) Je dois donc copier les formules situées en "AJ19, AK19 et AL19" et les recopier sur toutes les lignes du tableau (dans les colonnes "AJ, AK et AL").
D'avance merci- je crois que je viens de comprendre, il y a des cellules occupées sous mon tableau et si je ne me trompe pas, votre solution va jusqu'à la dernière cellule non vide, hors je dois m'arrêter à la fin de mon tableau. Y-a-t-il moyen d'ajouter des "balises" je ne sais pas comment expliquer, pour définir le tableau?
Je suis désolé de ne pas pouvoir mettre mon tableau, mais il fait partie de mon "programme" de facturation, et contient évidemment des données sensibles pour le RGPD, je vais donc essayer de le copier et vider toutes les infos sensibles, mais ça va être assez compliqué je pense - En cherchant un peu, j'ai trouvé l'explication sur votre "formule" et je pense qu'il faudrait lui ajouter quelque part "offset(-6)" car j'ai encore 6 lignes sous mon tableau. J'ai essayé de l'inclure dans votre formule, mais je n'y arrive pas
Range("AJ19:$AJ" & Range("AJ" & Rows.Count).End(xlUp).offset(-6).).Select
J'ai essayé de plusieurs façons mais sans résultats. Si vous avez une idée, je suis preneur.
Merci
-
-
Bonjour et merci pour cette réponse,
Elle fonctionne mais pas tout à fait. Je m'explique:
La macro copie bien les formules dans les nouvelles lignes insérée, mais elle ajoute des lignes dans le bas de mon tableau ( en dessous de ma dernière ligne) . Ne comprenant pas trop ce langage, je ne vois pas ce que je devrais modifier.
Je ne comprend pas bien ce que vous voulez dire avec
"la colonne A est la dernière ligne remplie (sinon, changer la lettre A en B ou autres)"
Mon tableau commence en A19 et fini en AL19 pour les colonnes.
Le nombre de ligne varient en fonction du nombre de lignes insérées (en provenance d'un autre tableau) Je dois donc copier les formules situées en "AJ19, AK19 et AL19" et les recopier sur toutes les lignes du tableau (dans les colonnes "AJ, AK et AL").
D'avance merci