Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème de Macro

  • Initiateur de la discussion Initiateur de la discussion gourdin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gourdin

XLDnaute Impliqué
Bonjour,

Une macro qui me donne du fil à retordre et pour laquelle vous m'avez déjà bien aidé.

Voir petit fichier joint explicatif

MERCI
 

Pièces jointes

Re : Problème de Macro

Merci de cette réponse,

mais je ne veux pas faire référence à une plage de cellule particulière comme tu me le suggère mais utiliser des références relatives car cette macro est censée se reproduire sur de très nombreux tableaux.

Mon but étant de parvenir à alleger le code et faire une macro unique à tous les tableaux sans donner à chaque fois la plage à selectionner.
 
Re : Problème de Macro

Bonsoir



C'est la le résultat que tu souhaites ?

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [D5:D36]) Is Nothing Then
Range("D3,B5:B20").Select
End If
End Sub
 
Re : Problème de Macro

Bonjour,

En fait ce que tu me proposes est ce que j'ai déjà réalisé et qui a nécessité des lignes de codes très nombreux (à la limite du maxi).

Or, je me demandais, compte tenu du nombre très important de tableaux pour lesquelles la macro doit être utilisée, si il n'était pas possible d'avoir une macro unique avec des réferences relatives et qui conviendrait donc à tous mes tableaux sans avoir à signaler à chaque fois la plage (ref absolu) à selectionner.

Peut être ne suis je pas clair ?
 
Re : Problème de Macro

Bonsoir le fil, bonsoir le forum,

Gourdin explique ce que veux que la macro fasse car pour moi ce n'est pas clair. Est-ce que tu veux sélectionner toutes ces cellules jaunes quelque soit l'endroit où tu cliques qui contient un "clic". Ou bien tu ne souhaites sélectionner que les cellules jaune en commençant par celle où il y a un premier clic en D. Tu vois ce n'est pas clair...

Ce code correspondrait à ma deuxième hypothèse :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Long 'déclare la variable x
Dim lf As Long 'déclare la variable lf (Ligne de Fin de couleur jaune)
 
For x = 5 To 65536
    If Cells(x, 2).Interior.ColorIndex <> 6 Then Exit For
Next x
lf = x - 1
 
If Target.Count > 1 Then Exit Sub
If LCase(Target.Value) = "clic" Then
ligne = Target.Row
For x = ligne To 5 Step -1
    If LCase(Cells(x, 4).Value) = "clic" Then ligne = ligne - 1
Next x
ligne = ligne + 1
Range("B" & ligne & ":B" & lf & ",D3").Select
End If
End Sub
 
Dernière édition:
Re : Problème de Macro

Bonsoir à tous,

voici un code qui semble répondre à la question.................pour autant que j'aie compris le problème
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If LCase(Target.Value) = "clic" Then
ligne = Target.Row
decal = Target.Row - 5
ligne = ligne - decal
Range("B" & ligne & ":B" & ligne + 15 & ",D" & ligne - 2).Select
End If
End Sub
 
Re : Problème de Macro

Bonsoir le fil, bonsoir le forum,

Je ne pense pas Laurent car dans Range("B" & ligne & ":B" & ligne + 15 & ",D" & ligne - 2).Select si le nombre de cellule jaune est différent ça va planter. Mais finalement seul Gourdin pourrais nous dire (s'il daigne se maniferter...) !
 
Re : Problème de Macro

Bonsoir à tous,

Attendons les explications un peu plus précises de gourdin

En attendant , un peu plus simple avec
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If LCase(Target.Value) = "clic" Then
[COLOR="Blue"][B]ligne = Target.Row - (Target.Row - 5)[/B][/COLOR]
Range("B" & ligne & ":B" & ligne + 15 & ",D" & ligne - 2).Select
End If
End Sub
 
Re : Problème de Macro

Bonjour,

Je vais essayer d'etre clair. Désolé si je ne l'ai pas été suffisamment.
Je vais partir de mon document de travail.

Sur une même page se trouve une succession de tableaux identiques de haut en bas

Quand je clique dans certaines cellules de chaque tableau (cellule "clic" de mon exemple), je souhaites que soit sélectionner une plage de cellule se situant à droite de chaque tableau (cellule jaune de mon exemple).

Les plages de cellules sélectionnées par clic sont donc différentes en fonction du tableau choisi.

Exemple ou chaque tableau est espacé de 100 ligne avec le suivant :

- pour le tableau N° 1 quand je clique sur une des cellules de B5 à B36, je sélectionne la plage B5:B20 et D3

- pour le tableau N° 2 quand je clique sur une des cellules de B105 à B136, je sélectionne la plage B105:B120 et D103

etc.

PS : les couleurs affectées à mon exemple étaient pour la compréhension mais dans mon document il n'y a pas de couleur, seulement des bordures.






Je souhaite sélectionner certaines plages de cellules (ici en jaune pour l'exemple) à partir de n'importe laquelle des cellule
 
Re : Problème de Macro

Re,
c'est bien ce que j'avais compris, as-tu un tableau formatté de manière régulière

tu donnes un décalage de 100 lignes dans ta dernière réponse
Est-ce TOUJOURS le cas ?

dans l'affirmative, il suffit de modifier ceci
Code:
ligne = Target.Row - (Target.Row - 5)
en y ajoutant le nombre de ligne arrondi à la centaine
 
Dernière édition:
Re : Problème de Macro

Re,
en vitesse avant que tu partes,
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If LCase(Target.Value) = "" Then
decal = Int(Target.Row / 100) * 100
ligne = Target.Row - (Target.Row - 5) + decal
Range("B" & ligne & ":B" & ligne + 15 & ",D" & ligne - 2).Select
End If
End Sub
 
Re : Problème de Macro

Bonsoir le fil, bonsoir le forum,

Quand même Gourdin ! Ton fichier exemple avec trois tableaux succéssifs nous aurait autant aider que tes longs discours !!!! J'attends la réponse à la question de Laurent qui nous permettra de te répondre éfficacement sans faire un fil de 40 post alors que deux ou trois auraient suffi... En plus c'est ton deuxième fil sur ce même problème. Rhhhhhh. Je vais m'absenter grave aussi je crois...
 
Re : Problème de Macro

Bonsoir Robert,

Comme à dit Brassens
Terminus en gare de Sète.........

Ne laisse pas tomber, mon code est encore perfectible et Gourdin reviendra à la charge quand il se rendra compte qu'il risque d'avoir des problèmes lorsqu'il cliquera dans les lignes
100 101 102 103 104
200 201 202 203 204
300 301 302 303 304...............😡😡😡

Edit:
@ Gourdin,
sur ce lien, https://www.excel-downloads.com/threads/simplifier-ligne-de-code-macro.120737/
tes explications étaient beaucoup plus précises malgré que les intervalles entre les zones du tableau n'étaient pas réguliers

Mais comme ma boule de cristal en en panne, j'ai pas pu deviner 😀😀😀
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
503
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…