Fonction range sur une plage de cellule - dernière cellule non vide

Tahititin

XLDnaute Occasionnel
Bonjour à tous,

Je travaille acuellement sur un fichier excel permettant de synthètiser le contenu de plusieurs onglets (tous identiques) sur un onglet unique. Mon soucis est que sur ces onglets servant de base, j'ai un champ "indice"' (A33 à A36) qui peut aller de 0 à 3 qui est rempli (ou pas) sur les colonnes correspondantes (B33 à B36 et H33 à H36) en fonction des demandes. je ne parvient pas, dans l'onglet synthèse, à faire en sorte qu'il me selection le dernier indice complété.
Je vous joins le fichier pour mieux comprendre

Merci d'avance pour votre aide
 

Pièces jointes

  • 1.1. Projet IdN - Demandes de modification APS.xlsm
    259.6 KB · Affichages: 35

job75

XLDnaute Barbatruc
Re : Fonction range sur une plage de cellule - dernière cellule non vide

Bonjour Tahititin,

Dans Worksheet_Activate :

Code:
'---
            lig = 33 + Application.Max(Sheets(x).Range("A33:A36"))
            Range("P" & x) = Sheets(x).Range("A" & lig) 'Indice
            Range("Q" & x) = Sheets(x).Range("B" & lig) 'Commentaire MOE'
            Range("R" & x) = Sheets(x).Range("H" & lig) 'Suite à donner'
'---
A+
 

Tahititin

XLDnaute Occasionnel
Re : Fonction range sur une plage de cellule - dernière cellule non vide

Bonjour Job75
et merci pour ce retour. cela ne fonctionne cependant pas comme je le voudrais. Il me prends bien la dernière ligne non vide de la colonne indice 'A' sur les onglets ('P' sur la synthèse) par contre cela ne fonctionne pas sur les colonnes 'B' et 'H' des onglets respectivement 'Q' et 'R' de la synthèse. J'ai cru que cela était du à la déclaration de valeur 'Lig' qui "tape" uniquement sur A33 à A36 et non sur les autres colonnes... j'ai donc essayé ça :

------
lig = 33 + Application.Max(Sheets(x).Range("A33:A36"))
Range("P" & x) = Sheets(x).Range("A" & lig) 'Indice
lid = 33 + Application.Max(Sheets(x).Range("B33:B36"))
Range("Q" & x) = Sheets(x).Range("B" & lid) 'Commentaire MOE'
lic = 33 + Application.Max(Sheets(x).Range("H33:H36"))
Range("R" & x) = Sheets(x).Range("H" & lic) 'Suite à donner'
------

mais ça ne fonctionne pas j'ai toujours dans la synthse la première ligne (B33 et H33) qui s'affiche.


Merci de ton aide
 

job75

XLDnaute Barbatruc
Re : Fonction range sur une plage de cellule - dernière cellule non vide

Re,

Pas très cohérent ce que vous voulez faire.

Mais si vraiment vous voulez la dernière valeur de chaque colonne A B H :

Code:
Dim x As Byte, c As Range
'---
            Range("P" & x).Resize(, 3) = "" 'RAZ
            Set c = Sheets(x).Range("A33:A36").Find("*", , xlValues, , , xlPrevious)
            If Not c Is Nothing Then Range("P" & x) = c 'Indice
            Set c = Sheets(x).Range("B33:B36").Find("*", , xlValues, , , xlPrevious)
            If Not c Is Nothing Then Range("Q" & x) = c 'Commentaire MOE
            Set c = Sheets(x).Range("H33:H36").Find("*", , xlValues, , , xlPrevious)
            If Not c Is Nothing Then Range("R" & x) = c 'Suite à donner
'---
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 236
Messages
2 086 477
Membres
103 230
dernier inscrit
herve42000