Utilisation de endxlup avec condition
Bonjour
je dois certainement m'y prendre mal et je ne vois pas trop comment m'en sortir , deja voila mon bout de code
sub alimentation_base_de_donnée
dim cell as range
with sheets("BD")
for each cell in range("b8:b2416")
if cell <> sheets("compta").range("H5")
'si le contenu de la cellule h5 de la page compta n'apparait pas dans la colonne B de la page BD alors on recupere certaines 'données de la page compta qui sont les cellule h5,h6,..l8 et qu'on place dans la page BD , sinon on inscrit rien dans la page BD .
sheets("BD").Range("B65536").End(xlUp).Offset(1, 0) = sheets("compta").range("H5")
sheets("BD").Range("D65536").End(xlUp).Offset(1, 0) = sheets("compta").range("H6")
sheets("BD").Range("F65536").End(xlUp).Offset(1, 0) = sheets("compta").range("H7")
sheets("BD").Range("H65536").End(xlUp).Offset(1, 0) = sheets("compta").range("H8")
sheets("BD").Range("J65536").End(xlUp).Offset(1, 0) = sheets("compta").range("H9")
sheets("BD").Range("L65536").End(xlUp).Offset(1, 0) = sheets("compta").range("L8")
else
msgbox " Information : cette donnée existe deja et ne sera pas inscrite dans la page BD "
end if
next cell
end with
end sub ce que je veux faire est en fait de pouvoir remplir les colonnes B,D,F,H,J,H de la feuille nommée BD en important ces donnée depuis
la page compta avec une contrainte de verification sur la cellule H5 de la page compta en comparant si celle si ce trouve dans la page BD en colonne B .
le souci est que mon code remplit toutes les colonnes de ma page nommée BD ! et ce n'est pas ce que je souhaite , mais uniquement ligne par ligne avec la contrainte de depart , j'ai beau examiner mon code et je ne comprend pas ou se trouve l'erreur
Merci pour vos conseils
Bonjour
Sans fichier
A tester
Sub alimentation_base_de_donnée()
With Sheets("BD")
If Application.CountIf(.Range("b8:b2416"), Sheets("compta").Range("H5")) = 0 Then
'si le contenu de la cellule h5 de la page compta
'n'apparait pas dans la colonne B de la page BD
'alors on recupere certaines
'données de la page compta qui sont les cellule h5,h6,..l8 et qu'on place dans la page BD
', sinon on inscrit rien dans la page BD .
.Range("B65536").End(xlUp).Offset(1, 0) = Sheets("compta").Range("H5")
.Range("D65536").End(xlUp).Offset(1, 0) = Sheets("compta").Range("H6")
.Range("F65536").End(xlUp).Offset(1, 0) = Sheets("compta").Range("H7")
.Range("H65536").End(xlUp).Offset(1, 0) = Sheets("compta").Range("H8")
.Range("J65536").End(xlUp).Offset(1, 0) = Sheets("compta").Range("H9")
.Range("L65536").End(xlUp).Offset(1, 0) = Sheets("compta").Range("L8")
Else
MsgBox " Information : cette donnée existe deja et ne sera pas inscrite dans la page BD "
End If
End With
End Subsinon
..;en plus je ne connaissais pas du tout cette forme conditionnelle :
If Application.CountIf(.Range("b8:b2416"), Sheets("compta").Range("H5")) = 0 Then
qui permet à la fois si je comprend bien de scruter une plage sur une feuille donnée et de la comparer avec une cellule ou plage
d'une autre feuille
c'est en effet nettement plus light que d'utiliser un for ! du coup je viens d'apprendre une bonne chose , merci a toi Banzai !
Bonjour
Pour info cela correspond à la fonction Excel NB.SI() : Regardes l'aide sur cette fonction