Cellule précédente

bonjour,

je suis sur la 1ere ligne vide disponible de mon fichier

la 1ere cellule (A300..) est bien sur vide.

je voudrais la pre-renseignée avec le contenu de la cellule précédente de cette meme colonne

merci

sm

Essaye ceci, si tu as d'autre caractéristiques à prendre en compte dis le

Sub test()
Dim i As Integer

for i = 1 to 20000
If IsEmtpy(cells(i,1)) = True Then
Cells(i,1).value = Cells(i-1,1).value
Exit For
End If
Next i
End Sub

merci ghorghorbey2 pour ta réponse,

en effet j'ai omis de préciser que je voulais faire cette "manip" sur la cellule active qui est vide et non pas depuis le début du fichier où ces cellules sont toutes déjà renseignées.

En fait à l'endroit du fichier où je me trouve, il faut que j'identifie la position de ma cellule, puis faire -1 et atteindre le contenu de la cellule précédente et le recopier sur la cellule en cours

exemple : colA colB colC

ligne 400 : xxx yyy zzz

ligne 401 :

je veux avoir xxx dans colA de la ligne 401

merci

Bonjour,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column = 1 And Target = "" Then Target = Target.Offset(-1)
End Sub

eric

Alors essaye le code d'Eric, et s'il ne marche pas normalement celui que j'ai fait correspond à ce que tu me dis, cette manip se fera sur la première cellule vide de ta colonne A entre les lignes 1 et 20000, et uniquement sur cette ligne. En fait la macro cherche une cellule vide dans la colonne A et dès qu'elle la trouve elle fait ta manip, puis elle s'arrête.

Voilà si j'ai mal compris ta demande n'hésite pas à me le dire

merci à eriic et à ghorghorbey2

j'avoue ne pas savoir comment utiliser le code de eriiic ?

Comment je mets ça dans ma cellule ?

ne serait-ce pas une macro ?

je vais essayer de préciser davantage le contexte d'utilisation. :

je suis sur la 1ere ligne vide d'un fichier qui s'enrichit tous les jours

la 1ere colonne de ma ligne vide de saisie est la date

je veux pre-renseigner cette date (1ere cellule de ma ligne de saisie) avec la date de la ligne du dessus

merci

Alors autant pour moi, je pensais que tu savais utiliser les macros.

Dans ce cas il faut que tu ailles dans fichier option, personnaliser le ruban et que tu coches l'onglet "Développeur"

Ensuite dans cette onglet clique sur Visual Basic et la fenêtre pour coder s'ouvre.

En dessous de "Fichier" tu as, sur le deuxième icône, une liste déroulante, déroule la et clique sur "module", ensuite dans la fenêtre qui va s'ouvrir colle ton code, le mien ou celui d'Eric.

Enfin tu vas pouvoir exécuter cette macro.

Dans ton fichier, tu as plusieurs options, soit tu créés une forme quelconque et tu fais clique droit affecter une macro, ensuite en cliquant sur ta forme la macro va s'exécuter, soit tu lances directement t'as macro en allant dans l'onglet développeur, dans macro, en sélectionnant ta macro et en l'exécutant.

Voilà comment utiliser les codes qu'on t'a donné.

Maintenant, si tu n'as aucune ligne vide avant celle que tu veux remplir, mon code fera ce que tu as demandé.

Sinon tu peux utiliser celui la, qui ne fait ta manip que sur la cellule sélectionnée :

Sub test()
Dim i, j As Integer
i = ActiveCell.Row
j = ActiveCell.Column

If IsEmtpy(cells(i,j)) = True Then
ActiveCell.Value = Cells(i-1,j).value
else
Msgbox("la cellule n'est pas vide")
End If

End Sub

j'espère avoir été clair ^^

bon c'est moi qui ne suis pas clair du tout et je m'en excuse car je t'ai fait perdre ton temps

je sais parfaitement utiliser les macros, j'en ai déjà fait et utiliser des dizaines.

le problème c'est que dans ce cas précis, je ne veux pas utiliser de macros

j'aurais souhaité (mais c'est sans doute impossible), avoir une formule dans ma cellule du syle :

=cellule précédente (ligne x-1, col y)

quelque chose qui ressemble à :

= Cells(ActiveCell.Row-1,ActiveCell.Column).Value

et si cette date (de la cellule précédente) ne convient pas, je remets la bonne date par dessus manuellement lors de ma saisie!

et cette formule je veux la propager sur toute la colonnes de toutes les lignes à venir

peut-être qu'il y impossibilité de résoudre cette question simplement!

ah efffectivement je n'avais pas compris !

Il te suffit de faire en A400 par exemple : =A399 et de tirer vers le bas, enfin c'est très simple, je ne comprend surement pas ta demande ^^

Puis lorsqu'une date ne sera pas bonne tu la changeras et celles d'en dessous suivront.

non effectivement je n'arrive pas à me faire comprendre.

mais c'est tant pis.

merci quand même d'avoir essayé de m'aider

bien cordialement

sm

Bonjour,

je sais parfaitement utiliser les macros, j'en ai déjà fait et utiliser des dizaines.

Tu es sûr ?

Il suffit de copier la mienne dans le module de la feuille concernée.

Quand tu sélectionnes une cellule en A, si elle est vide elle se rempli avec la cellule du dessus. Ce que tu avais demandé.

Sans vba, en A3 éventuellement :

=SI(C2="";"";A2)

à tirer vers le bas

eric

merci eriiic pour ta reponse

en fait je voulais régler mon problème non pas par une intervention directe telle que tu me le suggeres et tirer la formule vers le bas.

mais d'une façon dynamique !. En fait je voulais une formule et non une macro

Mais c'est un détail. c'est loin d'être le plus important

mais j'avance doucement dans mes connaissances grace à vous tous qui avez la gentillesse de répondre à nos questions de néophytes

merci encore et à + sur le forum, surement pour d'autres sujets !

cordialement

sam

Rechercher des sujets similaires à "precedente"