Vba dernière cellule non vide (Ignorer les formules résultat "")

djidji094 Messages postés 3 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 19 décembre 2013 - Modifié par djidji094 le 19/12/2013 à 00:35
djidji094 Messages postés 3 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 19 décembre 2013 - 19 déc. 2013 à 17:49
Bonjour à tous
C'est mon premier post sur votre site. Excusez moi si je suis un peu long.
Tout d'abord j'aimerais vous faire parvenir le tableau excel utilisé lors de la rédaction de ma question !
J'ai réalisé ce tableau de classement (9 vins dégustés), dernièrement. Après notation un "classement podium" s'effectue.
Le défis est d'inscrire dans une cellule (C18) le nom de l'antépénultième "Cru" (avant-avant-dernier).
Problème du code : Les cellules AJ14 à AJ16, bien que vides, ne sont pas reconnues comme telles !
La macro inscrit bien "Antépénultième" 2 cellules au dessus mais par rapport à la dernière cellule copiée et non par rapport à la dernière cellule non vide !

Macro copiage cellules classement final B5:B16 (avec formule) et collage spécial des valeurs dans AJ5:AJ16. Sélection de la dernière cellule non vide et inscription 2 cellules + haut d'Antépénultième".

Sub Antepenultieme()

'Création tableau "Antépénultième"

Range("B5:B16").Copy 'copie des cellules avec formule

Range("AJ5").Select 'collage spécial valeurs seules
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False

Range("AJ" & Rows.Count).End(xlUp).Offset(-2).Select 'selection cellule -2 vers le haut

ActiveCell.FormulaR1C1 = "Antépénultième" 'Inscription antépénultième dans la sélection

End Sub

Merci sincèrement de votre aide
A voir également:

4 réponses

jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 345
19 déc. 2013 à 00:53
Bonjour,

Essaye ça :
Sub Antepenultieme()

'Création tableau "Antépénultième"

Range("B5:B16").Copy 'copie des cellules avec formule

Range("AJ5").Select 'collage spécial valeurs seules
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False

Derniere_Ligne = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row 

Range("AJ" & Derniere_Ligne).End(xlUp).Offset(-2).Select 'selection cellule -2 vers le haut

ActiveCell.FormulaR1C1 = "Antépénultième" 'Inscription antépénultième dans la sélection

End Sub 


0