Bonjour,
est-il possible de concevoir une macro qui insère un saut de ligne au dessus d'une cellule dont le contenu est "Total" par exemple ?
Bonjour,
est-il possible de concevoir une macro qui insère un saut de ligne au dessus d'une cellule dont le contenu est "Total" par exemple ?
Bonjour,
Que signifie un "saut de ligne"?
Est-ce que tu veux insérer un saut de page? Ou est-ce que tu veux insérer une nouvelle ligne au-dessus de la cellule contenant "Total"?
Dans les 2 cas, pour obtenir le code correspondant, utilise l'enregistreur de macro.
Pour repérer la cellule contenant le mot "Total",tu peux utiliser la méthode Find.
Déja merci pour la réponse : oui c'est un saut de page, donc j'utilise l'enregistreur de macro et j'ajoute la fonction find... mais elle fonctionne comment ?
j'ai testé un truc comme cela mais ca bug :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Find("Total HT").Select ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
As-tu regardé le lien que je te donne pour comprendre la fonction Find? Qu'est-ce que tu ne comprends pas? As-tu essayé de l'utiliser? As-tu un message d'erreur quand tu l'utilises? Si oui, lequel?
Ou est-ce que tu ne sais pas comment l'utiliser en coimbinaison avec la fonction permettant de faire le saut de page?
Montre-nous le code que tu as déjà réussi à avoir, on va essayer de travailler à partir de cela.
oui j'ai regardé le lien que tu m'avais donné :
dans un premier temps j'ai fait cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub Saut() ' ' Saut Macro ' ' Sheets("Facture").Select Find("Total HT", MatchCase = True).Select ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell End Sub
PS : désolé je ne connais pas VBD :s
Erreur : "Erreur de compilation : Sub ou Founction non definie"
Attention, comme dans la "vraie vie" quand on cherche quelque chose, on le cherche à un endroit donné (on cherche un mot sur une certaine page d'un livre, par exemple). C'est aussi ce que spécifie l'explication de la syntaxe de Find :
On n'écrit pas Find comme cela, il faut l'appliquer à une plage de cellules. Par exemple, si tu sais que ce que tu cherches se trouve dans la plage de cellule A1:Z100, tu peux écrire:expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
expression : Variable qui représente un objet Range.
Ton erreur doit venir de là.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Range("A1:Z100").Find("Total HT", MatchCase = True)
Ensuite, en commentaire de ton code : en VBA on évite un maximum d'utiliser des Select (et Activate). Cela entraîne bien souvent des problèmes difficilement gérables. Au lieu d'utiliser Select, puis de faire appel à la cellule active, applique tes fonctions directement aux cellules que tu veux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Sheets("Facture").Range("A1:Z100").Find("Total HT", MatchCase = True)
Partager