Macro pour descendre de ligne Excel
masterofp
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Voila, j'ai une macro pour mon document excel qui est:
Elle fonctionne très bien. Le seul problème c'est que après 3 fois que je l'utilise, elle décale et écrit un peu partout sur la feuille.
Si vous pourriez m'aidé.
Merci
Phil
Voila, j'ai une macro pour mon document excel qui est:
Sub Ecris_en_dessous()
For i = 1 To 1
Range("A14").End(xlUp).Offset(1, 0).Value = "=NOW() "
Range("A14").End(xlUp).Offset(0, 1).Value = "Primextra Callisto - 25730 "
Range("A14").End(xlUp).Offset(0, 2).Value = "=Q2 "
Range("A14").End(xlUp).Offset(0, 3).Value = "3.75 L/Ha "
Range("A14").End(xlUp).Offset(0, 4).Value = "Oui"
Range("A14").End(xlUp).Offset(0, 5).Value = "=Q3"
Range("A14").End(xlUp).Offset(0, 6).Value = "Sol "
Range("A14").End(xlUp).Offset(0, 7).Value = "=NOW+3"
Next
End Sub
Elle fonctionne très bien. Le seul problème c'est que après 3 fois que je l'utilise, elle décale et écrit un peu partout sur la feuille.
Si vous pourriez m'aidé.
Merci
Phil
A voir également:
- Vba descendre d'une cellule
- Excel compter cellule couleur sans vba - Guide
- Bloquer une cellule excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule ✓ - Forum Excel
6 réponses
Salut,
A la fin de ta dernière ligne tu devrais écrire
Range("A14").End(xlUp).Offset(0, 7).Value = "=NOW()+3"
mais tu pourrais écrire ton code
Sub Ecris_en_dessous()
For i = 1 To 1
[A14].End(xlUp).Offset(1, 0).Value = "=NOW() "
[A14].End(xlUp).Offset(0, 1).Value = "Primextra Callisto - 25730 "
[A14].End(xlUp).Offset(0, 2).Value = "=Q2 "
[A14].End(xlUp).Offset(0, 3).Value = "3.75 L/Ha "
[A14].End(xlUp).Offset(0, 4).Value = "Oui"
[A14].End(xlUp).Offset(0, 5).Value = "=Q3"
[A14].End(xlUp).Offset(0, 6).Value = "Sol "
[A14].End(xlUp).Offset(0, 7).Value = "=NOW()+3"
Next
End Sub
Pour éviter la boucle For
Sub test()
[A14].End(xlUp).Offset(1, 0).Select
ActiveCell.Value = "=NOW() "
ActiveCell.Offset(0, 1).Value = "Primextra Callisto - 25730 "
ActiveCell.Offset(0, 2).Value = "=Q2 "
ActiveCell.Offset(0, 3).Value = "3.75 L/Ha "
ActiveCell.Offset(0, 4).Value = "Oui"
ActiveCell.Offset(0, 5).Value = "=Q3"
ActiveCell.Offset(0, 6).Value = "Sol "
ActiveCell.Offset(0, 7).Value = "=NOW()+3"
End Sub
Par contre la recherche de ta première cellule vide d'après ton code commence à la cellule A14, si tu utilises le code plusieurs fois dès que la cellule A14 est renseignée le code ne fonctionne plus. Si tu souhaites que le code s'incrive au dessous de cette cellule fais commencer la recherche au bas de la colonne et remplace Range("A14") ou [A14] par Range("A65536") ou plus court [A65536]
A la fin de ta dernière ligne tu devrais écrire
Range("A14").End(xlUp).Offset(0, 7).Value = "=NOW()+3"
mais tu pourrais écrire ton code
Sub Ecris_en_dessous()
For i = 1 To 1
[A14].End(xlUp).Offset(1, 0).Value = "=NOW() "
[A14].End(xlUp).Offset(0, 1).Value = "Primextra Callisto - 25730 "
[A14].End(xlUp).Offset(0, 2).Value = "=Q2 "
[A14].End(xlUp).Offset(0, 3).Value = "3.75 L/Ha "
[A14].End(xlUp).Offset(0, 4).Value = "Oui"
[A14].End(xlUp).Offset(0, 5).Value = "=Q3"
[A14].End(xlUp).Offset(0, 6).Value = "Sol "
[A14].End(xlUp).Offset(0, 7).Value = "=NOW()+3"
Next
End Sub
Pour éviter la boucle For
Sub test()
[A14].End(xlUp).Offset(1, 0).Select
ActiveCell.Value = "=NOW() "
ActiveCell.Offset(0, 1).Value = "Primextra Callisto - 25730 "
ActiveCell.Offset(0, 2).Value = "=Q2 "
ActiveCell.Offset(0, 3).Value = "3.75 L/Ha "
ActiveCell.Offset(0, 4).Value = "Oui"
ActiveCell.Offset(0, 5).Value = "=Q3"
ActiveCell.Offset(0, 6).Value = "Sol "
ActiveCell.Offset(0, 7).Value = "=NOW()+3"
End Sub
Par contre la recherche de ta première cellule vide d'après ton code commence à la cellule A14, si tu utilises le code plusieurs fois dès que la cellule A14 est renseignée le code ne fonctionne plus. Si tu souhaites que le code s'incrive au dessous de cette cellule fais commencer la recherche au bas de la colonne et remplace Range("A14") ou [A14] par Range("A65536") ou plus court [A65536]
Ok super sa marche.
Mais la il y a un autre problème. Je veut que les donné entre dans la feuille à partir de A22. Et qu'il continue a descendre (Ex: A23, A24, A25, etc) Comment je fais.
Merci
Phil
Mais la il y a un autre problème. Je veut que les donné entre dans la feuille à partir de A22. Et qu'il continue a descendre (Ex: A23, A24, A25, etc) Comment je fais.
Merci
Phil
Salut,
En A21 tu ne dois rien avoir sinon le code s'arrêterait en A22.
Sans rien à ton code il te suffit de simplement mettre en A21 un intervalle et le tour est joué ou en début de code ajouter |A21]=" "
Autrement il est possible de modifier le code
Sub test()
[A21]= " "
[A1000].End(xlUp).Offset(1, 0).Select
ActiveCell.Value = "=NOW() "
ActiveCell.Offset(0, 1).Value = "Primextra Callisto - 25730 "
ActiveCell.Offset(0, 2).Value = "=Q2 "
ActiveCell.Offset(0, 3).Value = "3.75 L/Ha "
ActiveCell.Offset(0, 4).Value = "Oui"
ActiveCell.Offset(0, 5).Value = "=Q3"
ActiveCell.Offset(0, 6).Value = "Sol "
ActiveCell.Offset(0, 7).Value = "=NOW()+3"
End Sub
--
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
En A21 tu ne dois rien avoir sinon le code s'arrêterait en A22.
Sans rien à ton code il te suffit de simplement mettre en A21 un intervalle et le tour est joué ou en début de code ajouter |A21]=" "
Autrement il est possible de modifier le code
Sub test()
[A21]= " "
[A1000].End(xlUp).Offset(1, 0).Select
ActiveCell.Value = "=NOW() "
ActiveCell.Offset(0, 1).Value = "Primextra Callisto - 25730 "
ActiveCell.Offset(0, 2).Value = "=Q2 "
ActiveCell.Offset(0, 3).Value = "3.75 L/Ha "
ActiveCell.Offset(0, 4).Value = "Oui"
ActiveCell.Offset(0, 5).Value = "=Q3"
ActiveCell.Offset(0, 6).Value = "Sol "
ActiveCell.Offset(0, 7).Value = "=NOW()+3"
End Sub
--
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Salut
Bien c'est sa le problème aussi. De la ligne A1 a A22, j'ai du text. A23 a A42 est libre et de A43 a A 50 il y a du texte. Mais moi je veux qu'il écrit dans la section libre. Comment Faire ?
Merci de ton aide
Phil
Bien c'est sa le problème aussi. De la ligne A1 a A22, j'ai du text. A23 a A42 est libre et de A43 a A 50 il y a du texte. Mais moi je veux qu'il écrit dans la section libre. Comment Faire ?
Merci de ton aide
Phil
Bonjour,
Permettez moi de m'insérer dans votre sujet. Dans le cas ou A21 et A22 sont non vides, pour sélectionner la première ligne vide sous A22 :
Range("A21").End(xlDown) 'sélectionne la dernière cellule "pleine" de la colonne A sous A21
Offset(1, 0) 'prend en compte la cellule juste dessous et donc ..... la 1ère vide.
EDIT : ça va bloquer en A43... Peut être qu'insérer des lignes serait judicieux...
Permettez moi de m'insérer dans votre sujet. Dans le cas ou A21 et A22 sont non vides, pour sélectionner la première ligne vide sous A22 :
Range("A21").End(xlDown).Offset(1, 0).Select
Range("A21").End(xlDown) 'sélectionne la dernière cellule "pleine" de la colonne A sous A21
Offset(1, 0) 'prend en compte la cellule juste dessous et donc ..... la 1ère vide.
EDIT : ça va bloquer en A43... Peut être qu'insérer des lignes serait judicieux...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok merci
Une autre question encore. Comme vous le voyer, dans la macro je prend des donnés des cellule Q2 et Q3. Ce que je voudrais etre capable de faire est le suivant.
J'entre des donné dans Q2 et Q3, je clic sur mon bouton de macro et il entre les donné dans les cellule de la macro.
Ensuite j'efface les cellule Q2 et Q3 et j'entre de nouvelle donné et je reclic sur le bouton de la macro et de nouvelle donné s'ajoute en dessous.
Présentement, dès que j'efface met cellule Q2 et Q3, il s'éfface aussi dans les cellule que le macro les places.
Comment faire?
Merci
Phil
Une autre question encore. Comme vous le voyer, dans la macro je prend des donnés des cellule Q2 et Q3. Ce que je voudrais etre capable de faire est le suivant.
J'entre des donné dans Q2 et Q3, je clic sur mon bouton de macro et il entre les donné dans les cellule de la macro.
Ensuite j'efface les cellule Q2 et Q3 et j'entre de nouvelle donné et je reclic sur le bouton de la macro et de nouvelle donné s'ajoute en dessous.
Présentement, dès que j'efface met cellule Q2 et Q3, il s'éfface aussi dans les cellule que le macro les places.
Comment faire?
Merci
Phil