Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

creation macro avec fonction si ?

3 réponses
Avatar
jb
bonjour,
je cherche à me simplifier la vie ( enfin la partie professionnelle)
sous excel
je selectionne une cellule avec du texte dans un colonne ( par Ex C)
je voudrais qu'excel verifie Si la cellule en dessous est vide, si oui
copier le texte de la cellule au dessus, si non descendre d'une cellule et
refaire la manip.
le tableau possedant 4000 lignes cela me faciliterait la vie;
je pense ne pas etre trop loin de la solution, mais je manque reellement de
connaissance sur les macros, en dehors de l'enregistreur il n'y a plus
personne.
existe t'il de "bon " bouquins pour apprendre, se former sur les macro


jandb44

3 réponses

Avatar
Jacky
Bonsoir,

Ceci pourrait convenir:
'----------
Sub jj()
derlg = Range("c65536").End(3).Row
For Each c In Range("c1:c" & derlg)
If c = "" Then c.Value = Range("c" & c.Row - 1).Value
Next
End Sub
'----------
Salutations
JJ

"jb" a écrit dans le message de
news:%
bonjour,
je cherche à me simplifier la vie ( enfin la partie professionnelle)
sous excel
je selectionne une cellule avec du texte dans un colonne ( par Ex C)
je voudrais qu'excel verifie Si la cellule en dessous est vide, si oui
copier le texte de la cellule au dessus, si non descendre d'une cellule et
refaire la manip.
le tableau possedant 4000 lignes cela me faciliterait la vie;
je pense ne pas etre trop loin de la solution, mais je manque reellement
de

connaissance sur les macros, en dehors de l'enregistreur il n'y a plus
personne.
existe t'il de "bon " bouquins pour apprendre, se former sur les macro


jandb44




Avatar
Clément Marcotte
Bonjour,

À la volée et non testé, mais cela devrait ressembler à cela:

Sub CopieUneLigneEnBasDansC()
dim derniereligne as long, i as long
dim partiou as long
'Chercher la dernièrecellule en C
derniereligne = range("C:66536").end(xlup).row
'trouver la c ellule occupée en C
partiou = activecell.row
'Balayer la colonne c
For i = partiou to derniereligne
if cells(i+1,3).value = "" then
'Si c'est la cellule au dessus de la cellule active qui est
'Ta cellule "au-dessus"
'prendre cells(i -1,3).value
'Sinon prendre cells(i,3).value
' à la droite du signe = de la ligne suivante
cells(i+1,3).value = cells(i-1,3).value
end if
next
end sub


"jb" a écrit dans le message de news:
%
bonjour,
je cherche à me simplifier la vie ( enfin la partie professionnelle)
sous excel
je selectionne une cellule avec du texte dans un colonne ( par Ex C)
je voudrais qu'excel verifie Si la cellule en dessous est vide, si oui
copier le texte de la cellule au dessus, si non descendre d'une cellule et
refaire la manip.
le tableau possedant 4000 lignes cela me faciliterait la vie;
je pense ne pas etre trop loin de la solution, mais je manque reellement
de connaissance sur les macros, en dehors de l'enregistreur il n'y a
plus personne.
existe t'il de "bon " bouquins pour apprendre, se former sur les macro


jandb44



Avatar
michdenis
Bonjour Jb,

Il y aurait aussi ceci en adaptant le nom de la feuille et de la plage (colonne) où cela est requis.

'----------------------
Sub Copie()

Dim Rg As Range
With Worksheets("Feuil3")
With .Range("C1:C" & .Range("C65536").End(xlUp).Row)
Set Rg = .SpecialCells(xlCellTypeBlanks)
Rg.Formula = "=" & Rg.Item(1).Offset(-1).Address(0, 0)
.Value = .Value
End With
End With

End Sub
'----------------------


Salutations!


"jb" a écrit dans le message de news: %
bonjour,
je cherche à me simplifier la vie ( enfin la partie professionnelle)
sous excel
je selectionne une cellule avec du texte dans un colonne ( par Ex C)
je voudrais qu'excel verifie Si la cellule en dessous est vide, si oui
copier le texte de la cellule au dessus, si non descendre d'une cellule et
refaire la manip.
le tableau possedant 4000 lignes cela me faciliterait la vie;
je pense ne pas etre trop loin de la solution, mais je manque reellement de
connaissance sur les macros, en dehors de l'enregistreur il n'y a plus
personne.
existe t'il de "bon " bouquins pour apprendre, se former sur les macro


jandb44