Croix dans cellules

Bonjour à vous tous,

Ne connaissant nullement la programmation Excel, je fais appel à vous. Je cherche en faisant un double-clic

sur une cellule du tableau 2 à ce qu’une croix (X) s’inscrive à la même position mais dans le tableau 3.

Exemple : si double-clic sur la cellule référencée F6 du tableau 2 (AK10), une croix s’inscrive

dans la cellule F6 du tableau 3 (BN10).

Merci pour votre aide.

66classeur1.xlsx (18.02 Ko)

Bonjour,

Ton fichier en retour

127alg.xlsm (24.18 Ko)

A+

Merci pour ta réponse rapide Frangy.

J'ai essayé d'intégrer le code dans le tableau de base qui m'avait été réalisé mais je n'y arrive pas. Mon niveau

de compétence Excel est vraiment: balbutiement. En faite dans le tableau 1, il existe une ou des macros permettant

de déplacer les cellules dans le même tableau (quand on clique sur une cellule, celle-ci va sur la ligne du dessous à

la fin des autres cellules et les autres cellules de la ligne initiale se resserrent).

Ce que je voudrais en plus c'est que tu as appliqué dans ta réponse à ma demande, à savoir l'installation d'une croix

dans le tableau 3 quand on clique sur une cellule du tableau 2.

Merci pour ton implication.

A tester

76alg-2.xlsm (38.10 Ko)

A+

Impeccable Frangy, çà fonctionne nickel ! Par contre si je veux rapprocher le tableau 3

du tableau 2 (colonne ABCD... sur BD, partie concrète du tableau positionnée de BE5 à CB37)

quel paramètre de la macro faut-il modifier ?

Merci.

Dans l'exemple joint, les plages correspondant aux tableaux sont nommées.

Le décalage à appliquer est calculé en fonction de la position des tableaux 2 et 3.

36alg-3.xlsm (38.48 Ko)

A+

OK, çà fonctionne mais j'ai regardé les macros et je ne sais pas quels sont les paramètres

à modifier si je veux encore décaler le tableau 3 ou réduire le tableau 2 dans l'avenir puis

redécaler le tableau 3 ensuite ?

Je ne vois pas les lignes et colonnes constituant les tableaux, il est vrai en contrepartie que

je ne connais rien concernant Visual Basic.

@+.

Comme je te le disais précédemment, j’ai utilisé le nommage des tableaux pour fixer le décalage.

En nommant les plages correspondant aux tableaux, tu t’affranchis des problèmes de codage liés à l’adressage direct.

Exemple :

Pour affecter la plage correspondant au Tableau 1 à la variable CRef, j’écris :

Set CRef = Range("C5 :Z75")

Si l’emplacement du tableau est modifié, le code devient erroné.

Maintenant, si je nomme "Tablo1" la plage C5:Z75 et que j’écris :

Set CRef = Range("Tablo1")

Si l’emplacement du tableau est modifié, le code reste correct car la plage de référence associée au nom est automatiquement mise à jour.

Après, pour fixer le décalage, il suffit d’exprimer ce dernier en fonction de la position des 2 tableaux.

Dans la ligne de code :

Cells(Target.Row, Target.Column).Offset(0, Range("Tablo3").Column - Range("Tablo2").Column) = "X"

C’est l’instruction Offset(0, Range("Tablo3").Column - Range("Tablo2").Column) qui fixe le décalage.

Elle indique d’une part que le décalage de ligne est nul Offset(0,...) et d’autre part que le décalage de colonne vaut Range("Tablo3").Column - Range("Tablo2").Column, avec :

Range("Tablo3").Column qui vaut 58 (première colonne de la plage de Tablo3)

Range("Tablo2").Column qui vaut 32 (première colonne de la plage de Tablo2)

Le décalage est donc de 26 colonnes.

Par contre, tu comprends bien que d’autres modifications de la structure de ta feuille vont avoir des répercutions sur le code.

Pour exemple, tu remarqueras que seul le décalage de colonne est pris en compte. Si tu viens à décaler les lignes, il faudra adapter le code.

En clair et résumé, avant de coder il faut d’abord savoir ce que l’on veut faire .

De plus, si tu ne connais rien à VBA, il va falloir apprendre car ça ne se fera pas tout seul .

A+

OK pour la réponse mais j'ai bougé en essai les tableaux 2 et 3 de manière horizontale en allant vers la gauche

et les croix ne se mettent plus quand on clique sur des cellules en début de tableau 2. J'ai bien compris d'autre

part que tu faisais en quelque sorte un raccourci pour le positionnement des tableaux, plutôt que de nommer

C5:Z75, il devient Tablo1, idem pour Tablo2 et Tablo3.

Mais comment redéfinir justement le positionnement des tableaux 1.2.3 après si je veux les réduire et bouger

ensuite 2 et 3 manière horizontale (donc sur le paramètre colonne) ? Je ne vois pas la nomination concrète des

tableaux, comment les redéfinir ou faire réapparaitre les positionnements ?

Je pose cette question au cas où je voudrais optimiser les 3 tableaux dans leur grandeur sans que je sois obliger

de te solliciter à chaque fois. Modifier AF5:BC37 en AB5:AY37, çà je peux faire. Pour le reste, c'est une autre histoire,

nous sommes d'accord !

Merci pour ton dévouement.

OK pour la réponse mais j'ai bougé en essai les tableaux 2 et 3 de manière horizontale en allant vers la gauche et les croix ne se mettent plus quand on clique sur des cellules en début de tableau 2.

J’ai fait le test de rapprochement / éloignement entre tableau 3 et tableau 2 par insertion/ suppression de colonne et je n’ai pas constaté d’anomalie.

27alg-3.xlsm (47.14 Ko)

Pour le dimensionnement des tableaux, cela se passe dans Formules / Gestionnaire de noms. Les 3 plages sont définies les noms Tablo1, Tablo1 et Tablo3.

A+

Tout simplement:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Plage As Range
Set Plage = Range("$AF$5:$BC$37")
Cells(Target.Row, Target.Column + 29).Value = "X"

End Sub
25alg.xlsm (24.23 Ko)

Effectivement Frangy, les déplacements fonctionnent. Mon erreur, je faisais du copier/coller des tableaux

alors qu'il faut en faite supprimer les colonnes non concernées bien évidemment.

En tout cas, tout est impeccable et cela me convient parfaitement actuellement.

Un grand merci pour vos réponses et mes remerciements particuliers à toi Frangy pour ton implication.

Rechercher des sujets similaires à "croix"