Bonjour à tous !
N'ayant pas trouvé de moyen pour parvenir à réaliser ce que je voulais, j'ai décidé de me lancer et d'essayer de faire un code VBA par moi même. Je suis donc débutante dans le domaine !
Voici mon problème :
J'aimerai qu'en tapant le numéro de commande sur une nouvelle ligne, toutes les informations qui sont entre "fournisseur" et "facture reçue" se recopie de la ligne précédente si le numéro de commande est le même. J'ai joint un fichier si besoin.
Je précise au cas où : impossible de mettre une simple formule si dans toute la colonne car j'utilise ensuite une fonction recherche de la dernière cellule remplie. Avec la fonction si entrée dans toute la colonne, ce ne sont plus les bonnes informations qui me sont renvoyées.
J'ai essayé d'y aller doucement et de tester si les valeurs de chaque variable étaient bien les bonnes qui étaient renvoyées en MsgBox. J'ai uniquement eu un problème avec "derniere_ligne_fournisseur", le bon rang est renvoyé mais pas la bonne valeur et je ne comprend pas pourquoi.
Pour le moment je tente de le faire fonctionner en recopiant uniquement la colonne fournisseur, je compléterais après.
Voila ce que j'ai fait :
Sub essai_recopier()
Dim derniere_ligne_commande As Long
Dim avant_derniere_ligne_commande As Long
Dim derniere_ligne_fournisseur As Long
Dim premiere_ligne_vide_fournisseur As Long
derniere_ligne_commande = Range("A" & Rows.Count).End(xlUp).Row
'donne le contenu de la dernière cellule remplie de la colonne A, soit le N° de cde
avant_derniere_ligne_commande = Range("A" & derniere_ligne_commande - 1).Value
'donne le contenu de l'avant derniere cellule remplie de la colonne A, soit les N° de cde
derniere_ligne_fournisseur = Range("E" & Rows.Count).End(xlUp).Row
'donne le contenu de la derniere cellule remplie de la colonne E, soit le fournisseur
'ATTENTION : NE FONCTIONNE QU'EN ROW ET PAS EN VALUE
premiere_ligne_vide_fournisseur = Range("E" & derniere_ligne_fournisseur + 1).Value
'donne le contenu de la premiere cellule vide de la colonne fournisseur en partant du bas
If derniere_ligne_commande = avant_derniere_ligne_commande Then
premiere_ligne_vide_fournisseur = derniere_ligne_fournisseur
Else: premiere_ligne_vide_fournisseur = 0
End If
End Sub
Merci d'avance à tous ceux qui m'accorderont du temps pour m'aider !