Déplacer cellule quand selection d'une colonne précise

bonjour,

je voudrais avoir la possibilité de ne pouvoir modifier les valeurs dans une colonne après une macro qui remplit cette colonne...

en détail : à l'ouverture d'un fichier excel, une macro se lance. celle-ci ouvre un fichier de dessin (format .dwg) pour y récupérer des attributs et leurs valeurs respectives. la macro remplit le fichier excel en colonnes et en lignes. après quoi je me retrouve avec une base de données exploitable et modifiable...MAIS il s'y trouve une colonne (la B) qui contient un code HYPER IMPORTANT car c'est celui-là qui permet d'identifier la ligne d'attributs depuis le fichier dessin ! et il ne faut pas perdre cette donnée !

donc comment faire pour que la macro puisse renseigner chaque lignes chaque colonnes chaque cellules soit qu'elle soit retoquée si la colonne B est verrouillée ???

Bonjour Ylegarff et bienvenu, bonjour le forum,

Déprotège dans la première ligne de la macro, reprotège dans la dernière.... Ou voir l'attribut UserInterfaceOnly quand tu protèges l'onglet...

précision : je ne veux pas qu'un collègue zélé se dise "tiens !?... une info colonne B qui n'intéresse personne... je peux la retirer." et bien non ! justement !

cette donnée n'est pas utile après extraction pour quelque tableau que ce soit, mais je ne peux pas ne pas l’extraire du fichier dessin (c comme ça) et surtout je dois la conserver pour activer une autre macro qui va retourner dans le fichier source pour mettre à jour les valeurs quand elle sont modifiées depuis excel...

bonjour ThauThème,

merci de ta réponse... comment faire "physiquement" ?...

et comment puis-je mettre le fichier en PJ dans le post...?

Re,

Pour mettre un fichier en pièce jointe, clique sur l'icône qui représente une feuille avec un X (la 8ème en partant de la gauche)... Pour insérer du code il faut cliquer sur le symbole : </>...

un truc comme ça pourrait fonctionner ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, [B:B]) Is Nothing Then Target.Offset(ColumnOffset:=1).Select
End Sub

avec le code que j'ai trouvé ça à l'air de fonctionné...

merci !

Re,

C'est une manière de faire mais si ça te convient c'est parfait. J'aurais quand même plutôt écrit :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A1") = "" Then
  Rows("3:65536").ClearContents
End If
    If Not Intersect(Target, Columns(2)) Is Nothing Then Target.Offset(0, 1).Select
End Sub

ah ok...

cela diminue les lignes de codes ? et donc la mémoire cache Excel ?...

Re,

Non mais j'ai lu qu'il valait mieux utiliser Range("A1") que [A1]. Je ne me souviens plus les raisons pour lesquelles on préconisait cette manière d'écrire. Je l'applique systématiquement depuis, mais libre a toi d'utiliser la méthode que tu préfères...

j'ai corrigé !

merci encore !

j'aurais un autre sujet à traiter...mais j'ouvre un nouveau post pour cela !

Rechercher des sujets similaires à "deplacer quand selection colonne precise"