Macro Excel: définir des ligne toujours en fin de tableau
Dernière réponse : dans Programmation
Bonjour,
j'ai réaliser une macro qui fait la mise en forme de mes facture.[img=http://img1.uplood.fr/free/thumbnails/fnn1_tableau.jpg]
mais puisqu'on ne sais pas d'avance combien de ligne pourrai contenir une facture.
j'aimerai donc connaitre le code qu'il me faudra inserer dans la macro pour définir les ligne Montant Total toujour en fin du tableau.
est ce possible ?
Merci !
j'ai réaliser une macro qui fait la mise en forme de mes facture.[img=http://img1.uplood.fr/free/thumbnails/fnn1_tableau.jpg]
mais puisqu'on ne sais pas d'avance combien de ligne pourrai contenir une facture.
j'aimerai donc connaitre le code qu'il me faudra inserer dans la macro pour définir les ligne Montant Total toujour en fin du tableau.
est ce possible ?
Merci !
Autres pages sur : macro excel definir ligne fin tableau
Lassé par la pub ? Créez un compte
Salut et Bienvenue.
Bien sûr que c'est possible !
Dans ce topic, j'explique comment aller à la fin d'un bloc. Tu pourrais t'en inspirer pour trouver où mettre tes lignes "total".
Bien sûr que c'est possible !
Dans ce topic, j'explique comment aller à la fin d'un bloc. Tu pourrais t'en inspirer pour trouver où mettre tes lignes "total".
Salut;
Merci de ta réponse.
mais comment faire si nous avons deux colonnes(Montant | 51000) concerné et que nous voulons mettre en fin de tableau deux lignes (Montant et montant Net) ?
comment faire aussi pour lui dire que c'est les lignes ou il ya inscrit "montant" et " montant net" qu'il doit mettre en fin de tableau ?
Merci.
Merci de ta réponse.
mais comment faire si nous avons deux colonnes(Montant | 51000) concerné et que nous voulons mettre en fin de tableau deux lignes (Montant et montant Net) ?
comment faire aussi pour lui dire que c'est les lignes ou il ya inscrit "montant" et " montant net" qu'il doit mettre en fin de tableau ?
Merci.
Bon, alors comment tu dirais, à une personne qui n'a pas Excel, mais juste une copie papier de ton tableau, de mettre un coup de stabilo (ben, c'est de la mise en forme basique, mais c'en est tout de même) dans la bonne cellule ?
Évidement que tu ne peux pas dire, la cellule "Montant". Imagine qu'en l'honneur d'Yves, on baptise un poisson "Montant". Si en plus, il faut le nettoyer et le désarrêter, tu risques d'avoir un produit "Montant net"
Évidement que tu ne peux pas dire, la cellule "Montant". Imagine qu'en l'honneur d'Yves, on baptise un poisson "Montant". Si en plus, il faut le nettoyer et le désarrêter, tu risques d'avoir un produit "Montant net"
Avec le code proposé pour déterminer la dernière ligne non vide pour une colonne donnée, en considérant la colonne A, on devrait trouver la cellule A18 de ton exemple. En se décalant de trois colonnes à droite et de deux lignes en bas, on devrait se trouver sur la case "Montant". Encore une case plus bas, et c'est la case "Montant net".
---------------------------------------
Etudie ce petit bout de code :
---------------------------------------
Etudie ce petit bout de code :
Sub toto() Dim cell_ref As Range ' // Se mettre sur une cellule + ou - au hasard Set cell_ref = Range("A18") MsgBox "Bonjour, je suis la cellule de référence." & vbCrLf & _ "Je pointe actuellement sur " & cell_ref.Address ' // Descendre de 2, se décaler de 3 Set cell_ref = cell_ref.Offset(2, 3) MsgBox "Je me suis décalé de 2 lignes vers le bas et de 3 colonnes vers la droite." & vbCrLf & _ "Je pointe maintenant sur " & cell_ref.Address ' // Descendre de 1 Set cell_ref = cell_ref.Offset(1, 0) MsgBox "Et hop ! On redescend." & vbCrLf & _ "Je pointe maintenant sur " & cell_ref.Address End Sub
Bonjour !
et merci encore pour tout tes reponses.
et oui tu as raison vaut mieu apprendre que de demander.
je crois avoir compris la logique:
-dabor je cherche la derniere ligne non vide de mon tableau
-puis j'essay de deplacer les cellules Montants deux lignes apres.
parcque en réalité voila ce que j'avais avant ma premiere macro de mise en forme
puisqu'on est certain que les champ montant serons toujours sur les même cellule au début.
donc la macro doit abord trouvé la dernière ligne non vide du tableau, puis déplacer les cellule A14:F15 deux lignes après la dernière ligne du tableau trouvé.
voici le code que j'ai faite pour cela:
bien sur ca ne marche pas
. c'est juste pour que tu me dise si la logique est bonne ou pas.
et peut etre que tu peut m'indiquer comment on initialise une variable qui doit contenir les coordonnées d'une cellule. car en réalité je n'ai jamais fait du VBA
Merci!
et merci encore pour tout tes reponses.
et oui tu as raison vaut mieu apprendre que de demander.
je crois avoir compris la logique:
-dabor je cherche la derniere ligne non vide de mon tableau
-puis j'essay de deplacer les cellules Montants deux lignes apres.
parcque en réalité voila ce que j'avais avant ma premiere macro de mise en forme
puisqu'on est certain que les champ montant serons toujours sur les même cellule au début.
donc la macro doit abord trouvé la dernière ligne non vide du tableau, puis déplacer les cellule A14:F15 deux lignes après la dernière ligne du tableau trouvé.
voici le code que j'ai faite pour cela:
Sub Macro5() cel_ref = (Cells(Rows.Count, c).End(xlUp).Row) + 2 Range("A14:F15").Select Selection.Cut Destination:=Range(cel_ref) Range(cel_ref).Select End Sub
bien sur ca ne marche pas
. c'est juste pour que tu me dise si la logique est bonne ou pas. et peut etre que tu peut m'indiquer comment on initialise une variable qui doit contenir les coordonnées d'une cellule. car en réalité je n'ai jamais fait du VBA
Merci!
Oups, je t'avais oublié.
Bon, alors maintenant que je peux lire ton code, je le trouve horrible.
Pourquoi diable fais-tu un Select suivi d'un Selection ? (T'inquiète pô, je connais la réponse
)
Code moche :
Code moins moche :
Et l'étude de code ?
Alors la première chose à faire, c'est de mettre Option Explicit au début de ton module. C'est non négociable.
Ensuite, on s'aperçoit qu'il y a des variables non déclarées. Ce n'est pas bien, il faut y remédier.
VBA est un langage trop moche pour que les variables non initialisées soient repérées par le compilateur.
Il va falloir le faire soi-même. Puis, tu vas mieux regarder la ligne 5 du code que je te proposai, en particulier le premier mot
Je te propose, à la lumière de ces quelques commentaires, de publier de nouveau ton code.
Tu es novice, tu as le droit à deux choses :
Il peut ne pas fonctionner,
Il peut etre très moche,
Une chose t'es interdite :
Il doit prendre en compte, le plus possible, des remarques précédentes.
Au boulot
Bon, alors maintenant que je peux lire ton code, je le trouve horrible.
Pourquoi diable fais-tu un Select suivi d'un Selection ? (T'inquiète pô, je connais la réponse
)Code moche :
Range(xxxx).Select Selection.Cut Destination:=yyyy
Code moins moche :
Range(xxxx).Cut Destination:=yyyy
Et l'étude de code ?
Ça, c'est n'importe quoi, mais on va y revenir.
cel_ref = (Cells(Rows.Count, c).End(xlUp).Row) + 2
Alors la première chose à faire, c'est de mettre Option Explicit au début de ton module. C'est non négociable.
Ensuite, on s'aperçoit qu'il y a des variables non déclarées. Ce n'est pas bien, il faut y remédier.
VBA est un langage trop moche pour que les variables non initialisées soient repérées par le compilateur.
Il va falloir le faire soi-même. Puis, tu vas mieux regarder la ligne 5 du code que je te proposai, en particulier le premier mot
Je te propose, à la lumière de ces quelques commentaires, de publier de nouveau ton code.
Tu es novice, tu as le droit à deux choses :
Une chose t'es interdite :
Au boulot
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumConcevoir une macro formulaire VBA pr remplissage d'un tableau Excel
- Forumtableau macro excel
- Forum[Résolu]Macro Excel: selectionner une ligne contenant un mot précis
- ForumMacro excell - recherche dans un tableau
- Forum[EXCEL] Variable ligne dans une macro
- Forumexcel : lancer macro en cas de modif sur une ligne
- ForumExcel macro trier des lignes
- ForumSélectionner lignes 1 à 65536 excel macro non vide
- Forumappliquer une condition à toutes les lignes d'un tableau en VBA EXCEL
- Voir plus
) 
(Va le lire, il faut utiliser la balises [code]. Pas besoin de refaire un autre message, il te suffit de modifier le premier)