Excel 2013 coupe et insérez dans VBA ne redimensionnez pas les plages nommées si la dernière input est ce qu'elle coupe

J'ai une feuille de calcul où j'ai une feuille intitulée "Listes" qui contient plusieurs plages nommées. Ces gammes nommées sont des équipes de collègues. J'ai configuré un button de command où une fois qu'il a appuyé, il prendra la valeur saisie dans "H30" (nom du collègue) et la valeur dans H31 (nom du gestionnaire) et sélectionnera le nom du collègue dans la list d'équipe, les découpera et les inserta dans l'équipe du manager conclue "H31" (c'est pour les gestionnaires de déplacer les personnes vers d'autres équipes).

C'est ce que j'ai tous mis en place et ça marche bien, avec Excel redimensionnant automatiquement les plages nommées afin que toutes les fonctions qui leur sont attachées (c.-à-d. Les boîtes combinées, etc.) fonctionnent toujours. Cependant, je rencontre un problème lorsque le collègue est le dernier collaborateur de l'équipe. L'utilisation de coupe / insertion dans VBA ne redimensionne pas la plage nommée dont ils ont été coupés, laissant un espace vide à la fin.

Comment puis-je faire en sorte que la gamme nommée soit encore redimensionnée correctement car elle le fait si le nom du collègue est coupé de n'importe où dans la gamme nommée. Existe-t-il un moyen simple de le faire? Sinon, ci-dessous est l'approche que je veux faire, mais je ne sais pas comment:

Trouvez le nom auquel appartient l'input "H30" dans

Si une déclaration pour vérifier si la valeur dans "H30" correspond à la dernière input dans la gamme nommée (ceci je travaille)

Redimensionner la plage après l'input de coupe (Avoir également un fonctionnement)

L'identification de la gamme à laquelle appartient le collègue est mon problème principal, et j'ai essayé d'utiliser une boucle comme suit pour parcourir chaque gamme nommée:

Dim nm As Name For Each nm In Worksheets("Lists").Names If Not Intersect(Range("H30"), nm.RefersToRange) Is Nothing Then 'Do things End If Next nm 

J'ai obtenu ce qui précède des exemples ailleurs, mais il ne semble pas toujours find la scope. Aucune erreur n'est générée non plus. Y a-t-il d'autres approches que je peux prendre pour find la gamme nommée dans laquelle est située une valeur?

Pour find la plage indiquée dans "H30", utilisez les Worksheets("Lists").Range("H30").Name.Name

La coupe d'une ligne / colonne ajoute automatiquement la forme dynamic dynamic. Donc, si vous coupez quelque chose en bas / en haut, c'est parti. Au lieu de couper les cellules de copy et de limiter les contenus. J'espère que vous utilisez CountA dans votre gamme nommée.