Formule visual basic
Résolu/Fermé
lili28
-
23 juin 2009 à 17:18
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 24 juin 2009 à 13:56
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 24 juin 2009 à 13:56
A voir également:
- Formule visual basic
- Visual basic - Télécharger - Langages
- Formule si et - Guide
- Microsoft 365 basic - Accueil - Microsoft Office
- Formule excel pour additionner plusieurs cellules - Guide
- Microsoft visual c++ runtime - Guide
8 réponses
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
23 juin 2009 à 17:26
23 juin 2009 à 17:26
a mon avis:
"ActiveCell.FormulaR1C1 = "=R21C7*R[-1]C"
la formule de la cellule active est égal à : la case (ligne 21, colone 7) x case (ligne précédente, colone actuelle)
"ActiveCell.FormulaR1C1 = "=R21C7*R[-1]C"
la formule de la cellule active est égal à : la case (ligne 21, colone 7) x case (ligne précédente, colone actuelle)
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
23 juin 2009 à 17:31
23 juin 2009 à 17:31
"ActiveCell.FormulaR1C1 = "=R21C7*R[-1]C"
ActiveCell = cellule active donc la cellule selectionnée
FormulaR1C1 = tu vas écrire une formule
cette formule, c'est : ligne21colonne7 (figée) * la ligne (avant :-1) de la même colonne
donc= $I$21*i24
2)
sub test()
for i=1 to 10
cells(i,2)=i
next i
end sub
cela écrira en colonne B 1 à B10 les chifres 1 à 10
A+
ActiveCell = cellule active donc la cellule selectionnée
FormulaR1C1 = tu vas écrire une formule
cette formule, c'est : ligne21colonne7 (figée) * la ligne (avant :-1) de la même colonne
donc= $I$21*i24
2)
sub test()
for i=1 to 10
cells(i,2)=i
next i
end sub
cela écrira en colonne B 1 à B10 les chifres 1 à 10
A+
amine69500
Messages postés
422
Date d'inscription
lundi 8 juin 2009
Statut
Membre
Dernière intervention
25 août 2013
12
24 juin 2009 à 13:05
24 juin 2009 à 13:05
bonjour
je vous ecrit par ce que jai un ptit probleme
es ce que vous pouvez me dire commen ca ce fai que ca marche pa mon code
jai declarer une variable globale dans un userform2
option explicit
Public col As string
et dans le userform2, ya un textbox
dans le userform initializ jai mis ca :
Me.TextBox430.Text = Sheets(1).Cells(1, col).Text
et jai un autre userform1 avec deux bouton option
bouton option 1
col = ("C")
userform2.show
bouton option 2
col = ("D")
userform2.show
je comprend pa ca devrai marche ? non , pouvez vous maider svp , ca fai deus jour je me casse la tete avec ca
merci de votre aide
je vous ecrit par ce que jai un ptit probleme
es ce que vous pouvez me dire commen ca ce fai que ca marche pa mon code
jai declarer une variable globale dans un userform2
option explicit
Public col As string
et dans le userform2, ya un textbox
dans le userform initializ jai mis ca :
Me.TextBox430.Text = Sheets(1).Cells(1, col).Text
et jai un autre userform1 avec deux bouton option
bouton option 1
col = ("C")
userform2.show
bouton option 2
col = ("D")
userform2.show
je comprend pa ca devrai marche ? non , pouvez vous maider svp , ca fai deus jour je me casse la tete avec ca
merci de votre aide
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
>
amine69500
Messages postés
422
Date d'inscription
lundi 8 juin 2009
Statut
Membre
Dernière intervention
25 août 2013
24 juin 2009 à 13:56
24 juin 2009 à 13:56
merci d'ouvrir ton propre post, ainsi ca facilitera le traitement des problèmes ...
Bonne journée
Bonne journée
j'ai encore qques erreurs dans mon programme, je pense qu'elles sont liées à une mauvaise syntaxe pour la sélection des ligne, colonnes, cellules avec les i
voici mon programme :
Sub conso()
'
' conso Macro
' Macro enregistrée le 23/06/2009 par libreservicemp
'
'
For i = 22 To 90
Rows("i:i").Select
Selection.insert Shift:=xlDown
Range("Hi").Select
ActiveCell.FormulaR1C1 = "=RiC7*R[-1]C"
Range("Hi").Select
Selection.AutoFill Destination:=Range("Hi:Ji"), Type:=xlFillDefault
Range("Hi:Ji").Select
Selection.NumberFormat = "0"
Next i
End Sub
ce que je voudrais faire :
pour i de 22 à 90
je sélectionne la ligne, j'insère une ligne au-dessus
je sélectionne la cellule Hi
je rentre la formule suivante dedans "=$G$[i-1]*H[i-1]"
puis je sélectionne Hi et je fais glisser le résultat dans Ii et Ji
enfin, je change le format des trois cellules en nombre sans décimale
je ne sais pas si c'est clair?
est-ce que qqn peut corriger mes erreurs?
merci
voici mon programme :
Sub conso()
'
' conso Macro
' Macro enregistrée le 23/06/2009 par libreservicemp
'
'
For i = 22 To 90
Rows("i:i").Select
Selection.insert Shift:=xlDown
Range("Hi").Select
ActiveCell.FormulaR1C1 = "=RiC7*R[-1]C"
Range("Hi").Select
Selection.AutoFill Destination:=Range("Hi:Ji"), Type:=xlFillDefault
Range("Hi:Ji").Select
Selection.NumberFormat = "0"
Next i
End Sub
ce que je voudrais faire :
pour i de 22 à 90
je sélectionne la ligne, j'insère une ligne au-dessus
je sélectionne la cellule Hi
je rentre la formule suivante dedans "=$G$[i-1]*H[i-1]"
puis je sélectionne Hi et je fais glisser le résultat dans Ii et Ji
enfin, je change le format des trois cellules en nombre sans décimale
je ne sais pas si c'est clair?
est-ce que qqn peut corriger mes erreurs?
merci
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
24 juin 2009 à 11:00
24 juin 2009 à 11:00
Bon je te corrige mais... ce n'est pas clair.
si ta procedure est juste.
la syntaxe c'est ça.
Sub conso()
'
' conso Macro
For i = 22 To 90
Rows(i).Select
Selection.Insert Shift:=xlDown
Range("H" & i).Select
ActiveCell.FormulaR1C1 = "=R" & i & "C7*R[-1]C"
Range("H" & i).Select
Selection.AutoFill Destination:=Range("H" & i & ":J" & i), Type:=xlFillDefault
Range("H" & i & ":J" & i).Select
Selection.NumberFormat = "0"
Next i
End Sub
Dis-moi si c'est ce que tu veux.
A+
si ta procedure est juste.
la syntaxe c'est ça.
Sub conso()
'
' conso Macro
For i = 22 To 90
Rows(i).Select
Selection.Insert Shift:=xlDown
Range("H" & i).Select
ActiveCell.FormulaR1C1 = "=R" & i & "C7*R[-1]C"
Range("H" & i).Select
Selection.AutoFill Destination:=Range("H" & i & ":J" & i), Type:=xlFillDefault
Range("H" & i & ":J" & i).Select
Selection.NumberFormat = "0"
Next i
End Sub
Dis-moi si c'est ce que tu veux.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
merci pour ta réponse, ça marche bien ... mais ça ne correspond pas à ce que je voulais faire
en fait ce que j'aimerais faire c'est pour un tableur que va de la ligne 21 à 90,
j'insère une première ligne sous la 21 soit à partir de la 22 et je fais le programme : la formule, copier-glisser dans 2 autres cellules et le changement de format
mais après il faudrait que je passe directement à la ligne 24 pr que dans la formule je prenne les données à partir de la ligne 23 (parce que à chaque fois que je vais insérer, ça va décaler...)
et que sinon, je remets tjrs la même ligne
est-ce que tu vois une solution?
si c'est assez clair
en fait ce que j'aimerais faire c'est pour un tableur que va de la ligne 21 à 90,
j'insère une première ligne sous la 21 soit à partir de la 22 et je fais le programme : la formule, copier-glisser dans 2 autres cellules et le changement de format
mais après il faudrait que je passe directement à la ligne 24 pr que dans la formule je prenne les données à partir de la ligne 23 (parce que à chaque fois que je vais insérer, ça va décaler...)
et que sinon, je remets tjrs la même ligne
est-ce que tu vois une solution?
si c'est assez clair
en fait c'est bon, j'ai trouvé une astuce en mettant i = i+1 avant next i
et ça marche
mais merci bcp pr ton aide qd même
et ça marche
mais merci bcp pr ton aide qd même
salut,
par contre, j'ai un autre problème
maintenant, je voudrais sélectionner toutes les cellules que j'ai crées et les copier
voici le programme que j'ai écrit
For i = 22 To 140
Range("H" & i & ":J" & i).Select
Range("H" & i).Activate
i = i + 1
Next i
Selection.Copy
End Sub
le problème c'est que ça ne me copie que les trois dernière
comment maintenir la sélection au fur et à mesure des i
comme quand on fait à la main avec la touche ctrl?
merci
par contre, j'ai un autre problème
maintenant, je voudrais sélectionner toutes les cellules que j'ai crées et les copier
voici le programme que j'ai écrit
For i = 22 To 140
Range("H" & i & ":J" & i).Select
Range("H" & i).Activate
i = i + 1
Next i
Selection.Copy
End Sub
le problème c'est que ça ne me copie que les trois dernière
comment maintenir la sélection au fur et à mesure des i
comme quand on fait à la main avec la touche ctrl?
merci
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
24 juin 2009 à 12:42
24 juin 2009 à 12:42
j'y ai pensé.
personnellement j'aurai utilisé un autre contrôle.
en faisant un test sur la parité de la ligne car que tu insère est toujours
soit pair soit inpaire
Sub test3()
For i = 22 To 130
If i Mod (2) = 0 Then
MsgBox ("ligne paire")
else
MsgBox ("ligne impaire")
End If
Next i
End Sub
personnellement j'aurai utilisé un autre contrôle.
en faisant un test sur la parité de la ligne car que tu insère est toujours
soit pair soit inpaire
Sub test3()
For i = 22 To 130
If i Mod (2) = 0 Then
MsgBox ("ligne paire")
else
MsgBox ("ligne impaire")
End If
Next i
End Sub