Recherche d'une cellule en fonction d'une autre

Bonjour à tous !

Alors voilà, j'ai défini deux colonnes, par exemple une appelée NOM et une appelée PRENOM.

A l'aide d'une première macro je rempli mes lignes pré-défini, avec notamment des infos dans la colonne NOM mais pas dans la colonne PRENOM. Une fois la ligne remplie, il se peut que j'ai besoin de rentrer le prénom. Il faudrait donc que j'ai un bouton associé à une macro qui retrouve la bonne cellule et me permette d'y inscrire ce dont j'ai besoin.

Précisément, je cherche à entrer une ligne de code qui sélectionne la cellule se trouvant :

  • dans la colonne PRENOM.
  • sur la même ligne que le dernier NOM.

La seule ligne de code que j'ai c'est quelque chose de ce type là :

Cells(Rows.Count, NOM.Column).End(xlUp).Select

Elle trouve la dernière cellule pleine de la colonne NOM.

Le problème c'est qu'ensuite je n'arrive pas à décaler jusqu'à la colonne Commentaire...

Il faudrait un truc du genre

Cells(Rows.Count, Matériel.Column).End(xlUp).Offset(0, Commentaire.Column).Select

Mais en langage correct xD

Je précise que je ne peux pas rentrer Offset(0,x) avec x ma colonne car il se peut que j'ai besoin d'ajouter des colonnes entre NOM et PRENOM et qu' auquel cas la macro ne fonctionnera plus sur la bonne colonne...

Si vous avez une ou deux indications pour m'aider ce serait vraiment gentil ^^

Merci beaucoup !

Fanny

Bonjour,

pas certain d'avoir compris et de savoir t'aider mais il est fortement conseillé de déposer un fichier exemple proche du ton fichier réeel

P.

Bonjour

Avec ton fichier, ce serait peut-être plus facile.

Bye !

Bonjour

Bonjour patrick1957, gmb

C'est NOM, PRENOM ou NOM, Commentaire ?

Cela change à chaque ligne !!!!

A tester

Tu crées des noms définis, un pour Nom, Un autre pour Prenom, un autre pour ..... (toutes les colonnes que tu veux)

Ensuite même si insertion/suppression colonne les noms seront toujours là (attention à la suppression de la colonne pour la copier ailleurs)

Pour trouver la colonne de nom par exemple

LaColonne = Range("le_nom_défini_pour nom").Column

Fournis un fichier reflétant ton fichier réel en y indiquant quelles sont les colonnes que tu as besoin de connaitre leurs positions

Bonjour tout le monde,

Alors voici un exemple sur le fichier joint.

Imaginons j'ai déjà :

  • une macro pour chaque Nom, ainsi lorsque je vaux ajouter une ligne en fin de tableau avec les infos de Dujardin, je clique sur le bouton associé à la macro de Dujardin.
  • créer les noms définis pour chacune des colonnes qui m'intéressent, à savoir Nom et Prénom.

Je sais retrouver la dernière cellule complétées de la colonne Nom :

Cells(Rows.Count, Nom.Column).End(xlUp).Offset(0).Select

Mais la cellule que j'ai besoin de retrouver c'est la D9, c'est-à-dire la cellule située dans la colonne Prénom pour la dernière ligne complétée.

Et je ne peux pas faire Offset(0,3) car je dois pouvoir ajouter des colonnes entre Prénom et Nom sans affecter le fonctionnement de la macro (d'où la création des noms définis Nom et Prénoms).

Voilà, j'espère que j'ai été plus claire ??

Merci

Fanny

Bonjour

Fournis un vrai fichier

Dans celui que tu as fournis il n'y a rien

faaaaaaanny a écrit :

-une macro pour chaque Nom, ainsi lorsque je vaux ajouter une ligne en fin de tableau avec les infos de Dujardin, je clique sur le bouton associé à la macro de Dujardin.

-créer les noms définis pour chacune des colonnes qui m'intéressent, à savoir Nom et Prénom.

Rien de tout ça

faaaaaaanny a écrit :

Cells(Rows.Count, Nom.Column).End(xlUp).Offset(0).Select

Ce n'est pas bon

Cells(Rows.Count, Range("le_nom_défini_pour_nom").Column).End(xlUp).Offset(0).Select
faaaaaaanny a écrit :

Mais la cellule que j'ai besoin de retrouver c'est la D9, c'est-à-dire la cellule située dans la colonne Prénom pour la dernière ligne complétée.

Cela pourrait être ça

Cells(1, Range("le_nom_défini_pour_Prénom").Column).Offset(Cells(Rows.Count, Range("le_nom_défini_pour_Nom").Column).End(xlUp).Row - 1).Select

Bonjour,

En fait la ligne est bonne (je ne sais pas comment insérer un morceau de votre message) car j'avais déjà défini Prénom comme étant de type Range (??? Je crois que c'est ce que j'ai fait en tout cas, avec Dim Prénom As Range...).

La ligne de code que vous venez de me proposer fonctionne parfaitement, c'est exactement de cela dont j'avais besoin. \o/

Promis, lorsque j'aurai plus de temps je me pencherai sur des cours pour mieux comprendre comment fonctionnent tous ces codes !

Merci beaucoup en tout cas !

Fanny

Bonjour

faaaaaaanny a écrit :

car j'avais déjà défini Prénom comme étant de type Range

Non aucun rapport

Mais bon si tu as trouvé une solution c'est cela le plus important

Rechercher des sujets similaires à "recherche fonction"