au secours !!!
je dosi tirer les formules d'une ligne avec condtion. Si dans la cellule il y'a un 0 alors je tire jusqu'en bas de la colonne.
Je dois donc installer une boucle: do while
mais j'ai l'impression de pas savoir m'en servir aidez moi !
Version imprimable
au secours !!!
je dosi tirer les formules d'une ligne avec condtion. Si dans la cellule il y'a un 0 alors je tire jusqu'en bas de la colonne.
Je dois donc installer une boucle: do while
mais j'ai l'impression de pas savoir m'en servir aidez moi !
Qu'entends-tu par là ? Que tu dois mettre des zéro sur toutes les cellules renseignées de la colonne à partir du zéro ? Ou bien jusqu'à la ligne 65536 ?Citation:
Envoyé par melodyyy
Je prends l'hypothèse N° 1
D'abord, tu dois identifier ta dernière ligne renseignée, puis, une fois le zéro rencontré, recopier le zéro vers le bas jusqu'à la dernière ligne.
Tu dis
en fait je dois dire:
Si tu trouve un 0 dans la cellule alors tu etend la formule jusqu'a la fin.Mais pas en linéaire comme le ferait l'enregisteur de macro...
donc il me faut une boucle, et pi j'y arrive pas je me sens super nulle c'est déprimant
Citation:
Envoyé par melodyyy
J'adore les messages qui commencent comme ça :mouarf:
J'ai pas trop compris ton message par contre :? :oops: Il faut que tu tire une formule a partir du 0 jusqu'a la fin ?
Et tu n'es pas nulle, tu apprend c'est pas pareil ;)
en tu as une cellule, avec une fomule, qui donne 0.
si j'ai ça je tire cette formule jusqu'en bas, si j'ai pas ça je tire pas
essai de dire cela autrement ... en supprimant "tirer" et "jusqu'en bas" ...soit plus claire...:?Citation:
Envoyé par melodyyy
Tu n'aurai pas une xemple sinon avec des valeurs ? :)
J'ai sans doute pas tout compris mais essaie ça et dis-nous
A+Code:
1
2
3
4
5
6
7
8
9
10
11
12 Dim Plage, NoColonne, ValCherchée, etc ValCherchée = 0 NoColonne = 3 DernièreLigne = Cells(1, NoColonne).SpecialCells(xlCellTypeLastCell).Row Plage = Range(Cells(1, NoColonne), Cells(DernièreLigne, NoColonne)).Address With Range(Plage) Set c = .Find(ValCherchée, LookIn:=xlValues) If Not c Is Nothing Then Range(Cells(ActiveCell.Row, NoColonne), Cells(DernièreLigne, NoColonne)).Select Selection.FillDown End If End With
PS - bill se chargera de simplifier ma plage ;)
ça peut pas le faire j'ai un énorme fichier, et en fait mon fichier commence par à la ligne 20 tu vois ?
et le numéro de la cellule je le connais comment ?
de plus j'ai des colonnes cachées...
Citation:
Envoyé par melodyyy
Tu fais un exemple bidon a ta manière avec des faux chiffres ;)
Là, tu te moques :(
Tu ajoutes ScreenUpdating = false au début, tu affiches ta colonne masquée, et tu mets ScreenUpdating =true à la fin,
Mais tu peux toujours nous demander si tu as besoin de quelque chose :aie:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Dim Plage, NoColonne, ValCherchée, etc Application.ScreenUpdating = false NoColonne = 3 Cells(1, NoColonne).EntireColumn.Hidden = False NoPremièreLigne = 20 ValCherchée = 0 DernièreLigne = Cells(NoPremièreLigne, NoColonne).SpecialCells(xlCellTypeLastCell).Row Plage = Range(Cells(NoPremièreLigne, NoColonne), Cells(DernièreLigne, NoColonne)).Address With Range(Plage) Set c = .Find(ValCherchée, LookIn:=xlValues) If Not c Is Nothing Then Range(Cells(ActiveCell.Row, NoColonne), Cells(DernièreLigne, NoColonne)).Select Selection.FillDown End If End With Cells(1, NoColonne).EntireColumn.Hidden = True Application.ScreenUpdating = True
Pour l'histoire du gros fichier, ce n'est pas parce que tu as plus de deux lignes dans ta macro qu'elle est plus lente ;)
Find sera toujours plus rapide qu'un examen ligne par ligne :scarymov:
je me moque pas je connais pas VBA ou presque pas j'apprends...
c'est compliqué comme macro non pour juste tirer une formule ?
j'ai pas pu tester il veut pas de:
Code:Range(Cells(ActiveCell.Row, NoColonne), Cells(DernièreLigne, NoColonne)).Select
Et d'abord, on ne dit pas tirer une formule mais recopier... Si j'ai bien compris ce que tu voulais faire :(
Mais effectivement, tu peux tout faire à la main, c'est plus simple :mouarf:
Te formalise pas, j'aime bien taquiner ;)
ben oui mais y'a trop trop de colonnes...la macro dvient extra grande...
du coup au taf ils veulent pas
bon alors...
ta 2eme macro en fait est refusée par VBA parce que
il en veut pas. Le 35 c'est pour moi, le numéro de la colonne...Code:derniereligne=cells(nopremiereligne,35).SpecialCells(xlCellTypelastCell).row
Peut tu donner l'erreur que vb te donne ?
Et par curiosité, il y a combien de ligne dans ta macro ?
il me met l'erreur 1004
et j'ai 565 lignes dans mon fichier