Incrémenter une série de valeur dans une colonne
Résolu/Fermé
bassmart
Messages postés
277
Date d'inscription
jeudi 19 février 2015
Statut
Membre
Dernière intervention
30 août 2022
-
17 mars 2015 à 14:52
bassmart Messages postés 277 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 30 août 2022 - 7 avril 2015 à 13:53
bassmart Messages postés 277 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 30 août 2022 - 7 avril 2015 à 13:53
A voir également:
- Incrémenter une série de valeur dans une colonne
- Déplacer une colonne excel - Guide
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
- Vba rechercher une valeur dans une colonne - Astuces et Solutions
- [Vba] recherche d'une valeur EXACTE ✓ - Forum VB / VBA
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 712
Modifié par pijaku le 17/03/2015 à 15:21
Modifié par pijaku le 17/03/2015 à 15:21
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 🎶
17 mars 2015 à 18:42
Ça fonctionne!
J'ai ajouté, comme le mentionne, un test sur le résultat de l'InputBox.
Voici mon nouveau 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 Application.ScreenUpdating = False 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 If premier = False Then Exit Sub Else Range("E" & dlig) = premier dlig = dlig + 1 For ligne = dlig To dlig + nbrlig Range("E" & ligne) = Range("E" & ligne - 1) + incr Next End If Application.ScreenUpdating = True End Sub17 mars 2015 à 19:45
si vide ou inférieur à premier???
17 mars 2015 à 22:24
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!!
18 mars 2015 à 07:46
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...
Sub ajoutSondage() Dim ligne As Long Dim nbrlig As Integer Dim incr As Integer Dim dlig As Long, premier As Long, dernier As Long Application.ScreenUpdating = False dlig = Range("E5").End(xlDown).Row + 1 premier = Application.InputBox("Numéro du premier sondage?", "DÉBUT", Type:=1) dernier = Application.InputBox("Numéro du dernier sondage?", "FIN", Type:=1) nbrlig = dernier - premier - 1 incr = 1 If premier = 0 And dernier = 0 Then MsgBox "Abandon utilisateur." Exit Sub ElseIf dernier < premier Then MsgBox "Décrémentation impossible" Exit Sub Else Range("E" & dlig) = premier dlig = dlig + 1 For ligne = dlig To dlig + nbrlig Range("E" & ligne) = Range("E" & ligne - 1) + incr Next End If Application.ScreenUpdating = True End Sub27 mars 2015 à 18:43
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!