Incrémentation de cellules
Résolu
F-RAGU
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
F-RAGU Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
F-RAGU Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je réalise un petit programme où je dois entrer une longueur donnée sur une feuille nommé "Saisie". Sur une autre feuille nommée "Calculs", je voudrais que cette longueur soit décomposée afin de pouvoir calculer des paramètres tous les 10 cm.
Voici un exemple parlant :
Sur la cellule A1 de la feuille "'Saisie", je rentre lz longueur désirée : ici 15m
Sur la feuille "Calculs", le programme doit automatiquement remplir les cellules de la colonne B, de 0 à 15m, tous les 0,1m soit :
0
0,1
0,2
.
.
.
15
Le principe est simple mais je ne vois pas trop comment programmer le tout. Si vous pouviez me filer quelques tuyaux ça serait sympa !!
Merci
F-RAGU.
Je réalise un petit programme où je dois entrer une longueur donnée sur une feuille nommé "Saisie". Sur une autre feuille nommée "Calculs", je voudrais que cette longueur soit décomposée afin de pouvoir calculer des paramètres tous les 10 cm.
Voici un exemple parlant :
Sur la cellule A1 de la feuille "'Saisie", je rentre lz longueur désirée : ici 15m
Sur la feuille "Calculs", le programme doit automatiquement remplir les cellules de la colonne B, de 0 à 15m, tous les 0,1m soit :
0
0,1
0,2
.
.
.
15
Le principe est simple mais je ne vois pas trop comment programmer le tout. Si vous pouviez me filer quelques tuyaux ça serait sympa !!
Merci
F-RAGU.
A voir également:
- Incrémentation de cellules
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller cellules excel - Guide
- Concatener deux cellules excel - Guide
- Impossible de fusionner des cellules dans un tableau excel - Forum Bureautique
- Afficher cellules masquées excel ✓ - Forum Excel
6 réponses
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.
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.... ;-)