Incrémenter une série de valeur dans une colonne
Résolu
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Dans ma feuille, j'ai commencé à créer une macro pour incrémenter des valeurs à partir d'un Inputbox dans la colonne E.
Ce que je veux , c'est que je demande à l'usager la valeur de départ et de fin à l'aide d'un InputBox, je détecte la dernière cellule vide de ma colonne E à partir de la ligne 5. Ensuite je veux, qu'il place la première valeur dans la première ligne vide de ma colonne E et qu'il incrémente à partir de ma première valeur jusqu'à la dernière valeur déterminé avec l'InputBox.
J'ai fait quelques essais pour faire la boucle mais sans succès!(For, For each)
Voici la première partie de mon code:
Merci pour votre aide!
Dans ma feuille, j'ai commencé à créer une macro pour incrémenter des valeurs à partir d'un Inputbox dans la colonne E.
Ce que je veux , c'est que je demande à l'usager la valeur de départ et de fin à l'aide d'un InputBox, je détecte la dernière cellule vide de ma colonne E à partir de la ligne 5. Ensuite je veux, qu'il place la première valeur dans la première ligne vide de ma colonne E et qu'il incrémente à partir de ma première valeur jusqu'à la dernière valeur déterminé avec l'InputBox.
J'ai fait quelques essais pour faire la boucle mais sans succès!(For, For each)
Voici la première partie de mon code:
Sub ajoutSondage() Dim ligne As Object Dim Deb As Integer, Fin As Integer, x As Integer, nbrlig As Integer Dim incr As Integer Dim dlig As Long, premier As Long, dernier As Long dlig = Range("E5").End(xlDown).Row premier = Application.InputBox("Numéro du premier sondage?", "DÉBUT") dernier = Application.InputBox("Numéro du dernier sondage?", "FIN") Deb = dlig + 1 nbrlig = dernier - premier Fin = Deb + nbrlig incr = 1 'For ligne = 1 To nbrlig 'Range("E5:E" & Deb) = premier 'Next End Sub
Merci pour votre aide!
A voir également:
- Incrémenter une série de valeur dans une colonne
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Colonne word - Guide
- Excel additionner une colonne - Guide
- Figer une colonne excel - Guide
1 réponse
Bonjour
en reprenant et épurant un peu ton code :
Attention : ajouter des tests si inputbox vides...
🎼 Cordialement,
Franck 🎶
en reprenant et épurant un peu ton code :
Sub ajoutSondage() Dim ligne As Long Dim nbrlig As Integer Dim incr As Integer Dim dlig As Long, premier As Long, dernier As Long dlig = Range("E5").End(xlDown).Row + 1 premier = Application.InputBox("Numéro du premier sondage?", "DÉBUT") dernier = Application.InputBox("Numéro du dernier sondage?", "FIN") nbrlig = dernier - premier - 1 incr = 1 Range("E" & dlig) = premier dlig = dlig + 1 For ligne = dlig To dlig + nbrlig Range("E" & ligne) = Range("E" & ligne - 1) + incr Next End Sub
Attention : ajouter des tests si inputbox vides...
🎼 Cordialement,
Franck 🎶
Ça fonctionne!
J'ai ajouté, comme le mentionne, un test sur le résultat de l'InputBox.
Voici mon nouveau code:
si vide ou inférieur à premier???
C'est bizarre, mon code ne me cause pas problème!
Mais, si j'entre rien dans le premier InputBox, il continue avec le deuxième InputBox pareil, alors qu'il devrait sortir de la macro et si j'entre rien dans le deuxième InputBox, là il semble sortir de la macro.
Je n'y comprend rien!!
Chez moi, il sort de la procédure...
Si tu entres des valeurs numériques, je te conseille de préciser le type de l'application.inputbox comme décrit ICI.
J'ai ajouté deux tests, regarde ce nouveau code et dis moi...
Merci pour ta réponse, est-ce qu'il doit sortir si j'appui sur annuler dans le premier InputBox?
Parce que si oui, il ne le fait pas!
Merci!