Macro pour descendre de ligne Excel
Fermé
masterofp
-
1 janv. 2010 à 20:29
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 6 janv. 2010 à 14:59
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 6 janv. 2010 à 14:59
A voir également:
- Vba descendre d'une cellule
- Aller à la ligne dans une cellule excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Verrouiller cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Vba range avec variable ✓ - Forum VB / VBA
6 réponses
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
1 janv. 2010 à 21:46
1 janv. 2010 à 21:46
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
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
6 janv. 2010 à 13:12
6 janv. 2010 à 13:12
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
6 janv. 2010 à 14:22
6 janv. 2010 à 14:22
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
6 janv. 2010 à 14:59
6 janv. 2010 à 14:59
Remplacer :
ce code inscrit en Cdernièreligne =Q2. Si Q2 = rien alors Cdernièreligne = rien
par :
ce code "copie" la valeur en Q2 et la "colle"en Cdernièreligne
Range("A14").End(xlUp).Offset(0, 2).Value = "=Q2 "
ce code inscrit en Cdernièreligne =Q2. Si Q2 = rien alors Cdernièreligne = rien
par :
Range("A14").End(xlUp).Offset(0, 2).Value = Range("Q2").Value
ce code "copie" la valeur en Q2 et la "colle"en Cdernièreligne