Incrémentation de cellules
Résolu/Fermé
F-RAGU
Messages postés
19
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
4 octobre 2009
-
20 août 2009 à 08:47
F-RAGU Messages postés 19 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 4 octobre 2009 - 20 août 2009 à 14:36
F-RAGU Messages postés 19 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 4 octobre 2009 - 20 août 2009 à 14:36
A voir également:
- Incrémentation de cellules
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller cellules excel - Guide
- Concatener deux cellules excel - Guide
- Excel compter les cellules de couleur - Guide
- Figer des cellules excel - Guide
6 réponses
F-RAGU
Messages postés
19
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
4 octobre 2009
20 août 2009 à 08:51
20 août 2009 à 08:51
Pour info j'utilise Excel ^^
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
20 août 2009 à 13:18
20 août 2009 à 13:18
Bonjour,
Dans vba, mets ce code :
sub longueur
dim i,j,a as string
i=1
j=1
longueur = cells(i,j) 'ta variable longueur sera égale à la longueur entrée
cells(i+1,j+1) = 0
for a= 0 to longueur
cells(i+2,j+1) = a+0,1
i=i+1
next a
end sub
pour le mettre dans vba : outils macro vba ou visual basic editor
si tu n'as pas de module, insertion module et tu copies et colle le code donné.
Pour l'activer, tu peux associer la macro à un bouton. ou dans outils macro et tu choisis la macro à éxécuter.
Dans vba, mets ce code :
sub longueur
dim i,j,a as string
i=1
j=1
longueur = cells(i,j) 'ta variable longueur sera égale à la longueur entrée
cells(i+1,j+1) = 0
for a= 0 to longueur
cells(i+2,j+1) = a+0,1
i=i+1
next a
end sub
pour le mettre dans vba : outils macro vba ou visual basic editor
si tu n'as pas de module, insertion module et tu copies et colle le code donné.
Pour l'activer, tu peux associer la macro à un bouton. ou dans outils macro et tu choisis la macro à éxécuter.
F-RAGU
Messages postés
19
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
4 octobre 2009
20 août 2009 à 13:45
20 août 2009 à 13:45
S'agissant d'une fonction, il me semble qu'on peux appeler la longueur dans n'importe quelle cellule de n'importe quelle feuille non et renvoie le résultat où on se positionne?
Voici les coordonnées :
cellule où on demande la longueur : C47 dans feuilles Saisie
pour l'incrémentation : colonne C feuille Colonne
J'avais posé une question similaire avant mais comme personne ne m'avais répondu...
Cordialement,
F-RAGU
Voici les coordonnées :
cellule où on demande la longueur : C47 dans feuilles Saisie
pour l'incrémentation : colonne C feuille Colonne
J'avais posé une question similaire avant mais comme personne ne m'avais répondu...
Cordialement,
F-RAGU
F-RAGU
Messages postés
19
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
4 octobre 2009
20 août 2009 à 13:59
20 août 2009 à 13:59
Salut Mélanie1324,
J'ai essayé ton programme mais il doit y avoir un problème au niveau de longueur. En effet VBE me dit que la fonction ou variable (en me montrant justement longueur) est attendue. Je crois que ça dit venir de la déclaration de longueur en tant que variable
J'ai essayé ton programme mais il doit y avoir un problème au niveau de longueur. En effet VBE me dit que la fonction ou variable (en me montrant justement longueur) est attendue. Je crois que ça dit venir de la déclaration de longueur en tant que variable
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
20 août 2009 à 13:59
20 août 2009 à 13:59
Une autre méthode que celle (très bien d'ailleurs) de melanie1234 :
Copier ce code, le coller dans un module (ALT + F11 , Insertion/Module)
Sub increment()
Dim i As Integer, j As Integer, k As Integer
i = Sheets("Saisie").Range("C47").Value
With Sheets("Calculs")
.Columns("C:C").ClearContents
For j = 2 To 10 * i
.Range("C" & j).Value = (j / 10) - 0.1
Next
.Range("C1").Value = 0
.Range("C65536").End(xlUp).Offset(1, 0).Value = i
End With
End Sub
Fermer la fenêtre Microsoft Visual Basic.
Pour que cela se fasse automatiquement, il faut appeler cette fonction par :
1- un bouton (boîte à outils controles/bouton de commande)
2- ALT + F8 cliquer sur increment et Exécuter
3- Clic droit sur l'onglet de la feuille saisie/visualiser le code et coller ces 3 lignes :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call increment
End Sub
Copier ce code, le coller dans un module (ALT + F11 , Insertion/Module)
Sub increment()
Dim i As Integer, j As Integer, k As Integer
i = Sheets("Saisie").Range("C47").Value
With Sheets("Calculs")
.Columns("C:C").ClearContents
For j = 2 To 10 * i
.Range("C" & j).Value = (j / 10) - 0.1
Next
.Range("C1").Value = 0
.Range("C65536").End(xlUp).Offset(1, 0).Value = i
End With
End Sub
Fermer la fenêtre Microsoft Visual Basic.
Pour que cela se fasse automatiquement, il faut appeler cette fonction par :
1- un bouton (boîte à outils controles/bouton de commande)
2- ALT + F8 cliquer sur increment et Exécuter
3- Clic droit sur l'onglet de la feuille saisie/visualiser le code et coller ces 3 lignes :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call increment
End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
20 août 2009 à 14:00
20 août 2009 à 14:00
bonjour
a adapter (C47 au lieu de A1 et C au lieu de B
attention l'incrément 0,1 ou autre doit être noté 0.1
Sub morceller(longueur As Byte, col As String, inc As Single)
lig = 1
Columns(col & ":" & col).ClearContents
For cptr = 0 To longueur Step inc
Sheets("calcul").Range(col & lig) = Application.Round(cptr, 1)
lig = lig + 1
Next
End Sub
Sub test()
Application.ScreenUpdating = False
morceller Sheets("saisie").Range("A1"), "B", 0.1
End Sub
a adapter (C47 au lieu de A1 et C au lieu de B
attention l'incrément 0,1 ou autre doit être noté 0.1
Sub morceller(longueur As Byte, col As String, inc As Single)
lig = 1
Columns(col & ":" & col).ClearContents
For cptr = 0 To longueur Step inc
Sheets("calcul").Range(col & lig) = Application.Round(cptr, 1)
lig = lig + 1
Next
End Sub
Sub test()
Application.ScreenUpdating = False
morceller Sheets("saisie").Range("A1"), "B", 0.1
End Sub
F-RAGU
Messages postés
19
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
4 octobre 2009
20 août 2009 à 14:09
20 août 2009 à 14:09
Merci à tous pour vos réponses !!! ton programme fonctionne pijaku.
Y a-t-il éventuellement moyen de l'adapter en macrofonction, c'est-à-dire de ne pas avoir systématiquement besoin de l'activer par ds touches ou bouton raccourci?
Y a-t-il éventuellement moyen de l'adapter en macrofonction, c'est-à-dire de ne pas avoir systématiquement besoin de l'activer par ds touches ou bouton raccourci?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
20 août 2009 à 14:25
20 août 2009 à 14:25
oui comme je te l'ai expliqué par avant :
3- Clic droit sur l'onglet de la feuille saisie/visualiser le code et coller ces 3 lignes :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call increment
End Sub
ps : tu peux sans crainte utiliser la fonction de michel_m ce gars là est trop fort.... ;-)
3- Clic droit sur l'onglet de la feuille saisie/visualiser le code et coller ces 3 lignes :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call increment
End Sub
ps : tu peux sans crainte utiliser la fonction de michel_m ce gars là est trop fort.... ;-)
F-RAGU
Messages postés
19
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
4 octobre 2009
20 août 2009 à 14:36
20 août 2009 à 14:36
Cela fonctionne ! Merci à tous pour vos contributions
F-RAGU
F-RAGU