comme tout le monde ici, j'ai un petit souci au niveau programmation.
Mon problème :
Dans une feuille j'importe des données qui sont stockées dans la colonne A. Jusque là pas de souci.
Le nombre de lignes est variable, de 1 à Dernière ligne, jusque là pas de problème.
Maintenant, je dois faire un tri et ne retenir que certaines données qui ont des places variables (puisque le nombre de lignes est variable d'un cas à l'autre).
Voilà ce que je n'arrive pas à faire :
For i to Dernière ligne
Sheets("Feuille Import").Range("B"&i).formulalocal="=si(A&i=""truc"";0;1)"
Next i
Le résultat c'est qu'il me copie la dernière expression sans faute alors que je veux pouvoir avoir en Bi soit 0 soit 1.
Autrement dit comment je fais pour que dans la formule qui sera écrite dans ma feuille j'ai bien =:=si(A1="truc";0;1) pour i = 1
=si(A2="truc";0;1) pour i = 2...etc
J'imagine que l'idée, c'est qu'à la place de A&i, il faut remplacer l e i par le numéro de ligne ? Alors il faut le lui dire, comme tu as très bien su le faire un peu plu s à gauche pour la colonne B.
Je trouve qu'on risque moins ce genre d'oubli en recourant à la syntaxe Cells(numligne, numcolonne).
C'est lourd, mais les nombres sont avec des nombres et les chaînes avec des chaînes. Mais ça, c'est une question d'appréciation personnelle ... D'ailleurs maintenant que j'ai dit ça, j'espère que je n'ai pas fait de faute de syntaxe dans ma formule :)
J'imagine que l'idée, c'est qu'à la place de A&i, il faut remplacer l e i
par le numéro de ligne ?
Alors il faut le lui dire, comme tu as très bien su le faire un peu plu s
à gauche pour la colonne B.
Je trouve qu'on risque moins ce genre d'oubli en recourant à la syntaxe
Cells(numligne, numcolonne).
C'est lourd, mais les nombres sont avec des nombres et les chaînes avec
des chaînes.
Mais ça, c'est une question d'appréciation personnelle ...
D'ailleurs maintenant que j'ai dit ça, j'espère que je n'ai pas fait de
faute de syntaxe dans ma formule :)
J'imagine que l'idée, c'est qu'à la place de A&i, il faut remplacer l e i par le numéro de ligne ? Alors il faut le lui dire, comme tu as très bien su le faire un peu plu s à gauche pour la colonne B.
Je trouve qu'on risque moins ce genre d'oubli en recourant à la syntaxe Cells(numligne, numcolonne).
C'est lourd, mais les nombres sont avec des nombres et les chaînes avec des chaînes. Mais ça, c'est une question d'appréciation personnelle ... D'ailleurs maintenant que j'ai dit ça, j'espère que je n'ai pas fait de faute de syntaxe dans ma formule :)
Gloops
Gloops a écrit, le 23/08/2012 17:30 : Cells(i, 1).Address(True, True)
sauf que là tu vas te retrouver avec des signes $ devant la lettre de l a colonne et le numéro de ligne. J'aurais dû mettre Address(False, False)
Gloops a écrit, le 23/08/2012 17:30 :
Cells(i, 1).Address(True, True)
sauf que là tu vas te retrouver avec des signes $ devant la lettre de l a
colonne et le numéro de ligne.
J'aurais dû mettre Address(False, False)
Gloops a écrit, le 23/08/2012 17:30 : Cells(i, 1).Address(True, True)
sauf que là tu vas te retrouver avec des signes $ devant la lettre de l a colonne et le numéro de ligne. J'aurais dû mettre Address(False, False)
MichD
Bonjour,
Si tu veux copier ta formule sur un ensemble de cellules de la colonne A:A
'------------------------------------------ Sub test() With Worksheets("Feuil1") 'Nom feuille à adapter 'Nom de la colonne à adapter au besoin With .Range("A1:A" & .Range("A65536").End(xlUp).Row) .Formula = "=si(A1=""truc"",0,1)" End With End With End Sub '------------------------------------------
Si tu veux copier ta formule sur un ensemble de cellules de la colonne A:A
'------------------------------------------
Sub test()
With Worksheets("Feuil1") 'Nom feuille à adapter
'Nom de la colonne à adapter au besoin
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.Formula = "=si(A1=""truc"",0,1)"
End With
End With
End Sub
'------------------------------------------
Si tu veux copier ta formule sur un ensemble de cellules de la colonne A:A
'------------------------------------------ Sub test() With Worksheets("Feuil1") 'Nom feuille à adapter 'Nom de la colonne à adapter au besoin With .Range("A1:A" & .Range("A65536").End(xlUp).Row) .Formula = "=si(A1=""truc"",0,1)" End With End With End Sub '------------------------------------------
comme tout le monde ici, j'ai un petit souci au niveau programmation.
Mon problème :
Dans une feuille j'importe des données qui sont stockées dans la colonne A. Jusque là pas de souci.
Le nombre de lignes est variable, de 1 à Dernière ligne, jusque là pas de problème.
Maintenant, je dois faire un tri et ne retenir que certaines données qui ont des places variables (puisque le nombre de lignes est variable d'un cas à l'autre).
Voilà ce que je n'arrive pas à faire :
For i to Dernière ligne Sheets("Feuille Import").Range("B"&i).formulalocal="=si(A&i=""truc"";0;1)" Next i
Le résultat c'est qu'il me copie la dernière expression sans faute alors que je veux pouvoir avoir en Bi soit 0 soit 1.
Autrement dit comment je fais pour que dans la formule qui sera écrite dans ma feuille j'ai bien =:=si(A1="truc";0;1) pour i = 1 =si(A2="truc";0;1) pour i = 2...etc
Merci beaucoup à vous deux,
j'ai testé la proposition de MichD, qui fonctionne parfaitement.
Merci pour la rapidité de vos réponses.
Le jeudi 23 Août 2012 à 17:09 par piotrg :
Bonjour,
comme tout le monde ici, j'ai un petit souci au niveau programmation.
Mon problème :
Dans une feuille j'importe des données qui sont stockées dans la
colonne A. Jusque là pas de souci.
Le nombre de lignes est variable, de 1 à Dernière ligne, jusque
là pas de problème.
Maintenant, je dois faire un tri et ne retenir que certaines données qui
ont des places variables (puisque le nombre de lignes est variable d'un cas
à l'autre).
Voilà ce que je n'arrive pas à faire :
For i to Dernière ligne
Sheets("Feuille
Import").Range("B"&i).formulalocal="=si(A&i=""truc"";0;1)"
Next i
Le résultat c'est qu'il me copie la dernière expression sans
faute alors que je veux pouvoir avoir en Bi soit 0 soit 1.
Autrement dit comment je fais pour que dans la formule qui sera écrite
dans ma feuille j'ai bien =:=si(A1="truc";0;1) pour i = 1
=si(A2="truc";0;1) pour i = 2...etc
Merci beaucoup à vous deux,
j'ai testé la proposition de MichD, qui fonctionne parfaitement.
comme tout le monde ici, j'ai un petit souci au niveau programmation.
Mon problème :
Dans une feuille j'importe des données qui sont stockées dans la colonne A. Jusque là pas de souci.
Le nombre de lignes est variable, de 1 à Dernière ligne, jusque là pas de problème.
Maintenant, je dois faire un tri et ne retenir que certaines données qui ont des places variables (puisque le nombre de lignes est variable d'un cas à l'autre).
Voilà ce que je n'arrive pas à faire :
For i to Dernière ligne Sheets("Feuille Import").Range("B"&i).formulalocal="=si(A&i=""truc"";0;1)" Next i
Le résultat c'est qu'il me copie la dernière expression sans faute alors que je veux pouvoir avoir en Bi soit 0 soit 1.
Autrement dit comment je fais pour que dans la formule qui sera écrite dans ma feuille j'ai bien =:=si(A1="truc";0;1) pour i = 1 =si(A2="truc";0;1) pour i = 2...etc
Merci beaucoup à vous deux,
j'ai testé la proposition de MichD, qui fonctionne parfaitement.