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 Sub

sinon

CA MARCHE DU TONNERRE BANZAI !! merci beaucoup j'aurais jamais pu en faire autant , merci à toi


..;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

Rechercher des sujets similaires à "utilisation endxlup condition"