Problème code macro [Résolu]

Signaler
Messages postés
35
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
14 février 2021
-
Messages postés
35
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
14 février 2021
-
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


Configuration: Macintosh / Safari 14.0.3

2 réponses

Messages postés
1031
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
25 février 2021
214
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
Messages postés
35
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
14 février 2021

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
Messages postés
1031
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
25 février 2021
214 >
Messages postés
35
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
14 février 2021

Re,
Sans avoir de classeur modèle sous la main !!
Messages postés
35
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
14 février 2021
>
Messages postés
1031
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
25 février 2021

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
Messages postés
35
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
14 février 2021
>
Messages postés
35
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
14 février 2021

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
Messages postés
35
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
14 février 2021
>
Messages postés
35
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
14 février 2021

Range("AJ19:$AJ" & Range("AJ" & Rows.Count).End(xlUp).Offset(-6).Row).Select

Voilà.

Merci encore de m'avoir mis sur la piste
Messages postés
35
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
14 février 2021

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