recherche dernière ligne qui ne fonctionne pas

  • Initiateur de la discussion Initiateur de la discussion Marion16
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Marion16

XLDnaute Nouveau
Bonjour,

J'ai un fichier Excel dans lequel, tous les mois j'ajoute des données mais qui ne fonctionne pas.
Pour être plus précise, ci-joint le fichier.

Dans l'onglet Données: je récupére les expéditions qui sont réalisées sur 1 mois. Dans la colonne AB je récupère la date d'expédition prévue , dans la colonne AC je récupérer la date d'expédition réelle et dans la colonne AC je calcul le nombre de jour d'écart entre l'expédition prévue et l'expédition réelle. Dans la cellule AB101 je calcul le nombre d'expédition dans le mois et dans la cellule AD101 je calcul la moyenne de jour d'écart.

Je copie la valeur de la cellule AB101 et AD101 pour les coller dans l'onglet Tableau de bord dans les colonnes C9 à C20 et D9 à D20.
Je souhaite que les valeurs se copient dans ses colonnes après la dernière cellule non vide.

J'ai bien essayer avec XlUp et Xldown mais ça ne marche pas.

Quelqu'un peut-il m'aider à résoudre mon problème?

Merci beaucoup,

Marion
 
Re : recherche dernière ligne qui ne fonctionne pas

Bonjour,

remplace
Code:
Range("C9").End(xlDown).Select 'trouver le dernière cellule  non vide

par
Code:
Dim ligne_Fin_Col_C as long
ligne_Fin_Col_C = Range("C65536").End(xlup).row + 1'trouver la cellule après la dernière cellule non vide = la première cellule vide
Range("C" & cstr(ligne_Fin_Col_C)).value ...

Cordialement,
Orodreth
 
Dernière édition:
Re : recherche dernière ligne qui ne fonctionne pas

Bonjour Marion,

Remplace la ligne
Code:
Range("C9").End(xlDown).Select 'trouver le dernière cellule  non vide
Par
Code:
Range("c20").End(xlUp).Select 'trouver le dernière cellule  non vide
Pour explication : Avec ce code, Excel part de la cellule C20 et remonte jusqu'à la dernière ligne vide.

Tu as aussi la ligne
Code:
Range("d20").End(xlUp).Select
à mettre à la place de
Code:
Range("D9").End(xlDown).Row

Cordialement.

Edit : Je n'avais pas vu la réponse de Orodreth. Je ne pense pas que cela va fonctionner, car il y a une ligne de total en c21.
 
Dernière édition:
Re : recherche dernière ligne qui ne fonctionne pas

Bonjour Marion et bienvenue, bonjour le fil, bonjour le forum,

@Marion : Il faut éviter autant que tu le peux les Select qui ralentissent le code et ne sont pas nécessaires. Les instruction With... End With, permettent souvent de régler ce problème. Ci-dessous ton code épuré :


Code:
Sub Bouton1_Clic()
Range("AD2").FormulaR1C1 = "=IF(RC[-1]<>0,RC[-2]-RC[-1],"""")" 'calculer la différence entre date de livraison demandée et date d'expédition
Range("AD2").AutoFill Destination:=Range("AD2:AD100"), Type:=xlFillDefault 'étirer la formule de la cellule AD2
Range("AB101").FormulaR1C1 = "=COUNTA(R[-99]C:R[-1]C)" 'Calculer le nombre de cellule non vide
Range("AD101").FormulaArray = "=AVERAGE(IF(R[-99]C:R[-1]C<>0,R[-99]C:R[-1]C))" 'Calculer la moyenne des écarts entre date de livraison demandé et date d'expédition
With Sheets("Données") 'Sélectionner la feuille données
    Sheets("Tableau de bord").Range("C8").End(xlDown).Offset(1, 0).Value = .Cells(101, 28).Value
    Sheets("Tableau de bord").Range("D8").End(xlDown).Offset(1, 0).Value = .Cells(101, 30).Value
End With
End Sub
 
Re : recherche dernière ligne qui ne fonctionne pas

Bonjour Robert,

Ton code est tellement performant que j'ai cru qu'il n'avait pas fonctionné au départ. 😕
En revanche, il me semble qu'il manque le format des cellules à 0.0. Je me permet de le rajouter.

Code:
Sub Bouton1_Clic()
Range("AD2").FormulaR1C1 = "=IF(RC[-1]<>0,RC[-2]-RC[-1],"""")" 'calculer la différence entre date de livraison demandée et date d'expédition
Range("AD2").AutoFill Destination:=Range("AD2:AD100"), Type:=xlFillDefault 'étirer la formule de la cellule AD2
Range("AB101").FormulaR1C1 = "=COUNTA(R[-99]C:R[-1]C)" 'Calculer le nombre de cellule non vide
Range("AD101").FormulaArray = "=AVERAGE(IF(R[-99]C:R[-1]C<>0,R[-99]C:R[-1]C))" 'Calculer la moyenne des écarts entre date de livraison demandé et date d'expédition
With Sheets("Données") 'Sélectionner la feuille données
    Sheets("Tableau de bord").Range("C8").End(xlDown).Offset(1, 0).Value = .Cells(101, 28).Value
    Sheets("Tableau de bord").Range("D8").End(xlDown).Offset(1, 0).Value = .Cells(101, 30).Value
End With
With sheets("Tableau de bord")
    .Range("D9:D20").NumberFormat = "0.0" 'sélection du format du nombre à appliquer
End With
MsgBox "La mise à jour s'est bien déroulée." 'Pour ne pas cliquer deux fois en pensant que rien ne c'est passé :)
End Sub

Cordialement,

Encore bravo à toi Robert.
 
Re : recherche dernière ligne qui ne fonctionne pas

Bonjour à tous,

Je tiens à tous vous remercier pour votre aide si rapide.

Merci beaucoup robert et goldenboy pour ce code il fonctionne à merveille!!!

Encore un grand merci.

Bonne soirée,

Marion
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour