Problème code macro

Résolu/Fermé
didsyl
Messages postés
36
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
29 avril 2021
- 13 févr. 2021 à 18:05
didsyl
Messages postés
36
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
29 avril 2021
- 14 févr. 2021 à 12:38
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

M-12
Messages postés
1200
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
20 mai 2022
263
13 févr. 2021 à 18:32
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
0
didsyl
Messages postés
36
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
29 avril 2021

14 févr. 2021 à 10:55
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
0
M-12
Messages postés
1200
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
20 mai 2022
263 > didsyl
Messages postés
36
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
29 avril 2021

14 févr. 2021 à 10:59
Re,
Sans avoir de classeur modèle sous la main !!
0
didsyl
Messages postés
36
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
29 avril 2021
> M-12
Messages postés
1200
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
20 mai 2022

14 févr. 2021 à 11:07
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
0
didsyl
Messages postés
36
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
29 avril 2021
> didsyl
Messages postés
36
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
29 avril 2021

Modifié le 14 févr. 2021 à 11:51
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
0
didsyl
Messages postés
36
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
29 avril 2021
> didsyl
Messages postés
36
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
29 avril 2021

14 févr. 2021 à 12:38
Range("AJ19:$AJ" & Range("AJ" & Rows.Count).End(xlUp).Offset(-6).Row).Select

Voilà.

Merci encore de m'avoir mis sur la piste
0
didsyl
Messages postés
36
Date d'inscription
lundi 4 juin 2012
Statut
Membre
Dernière intervention
29 avril 2021

Modifié le 14 févr. 2021 à 10:56
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
0