Problème de code VBA

  • Initiateur de la discussion Initiateur de la discussion dadahorse91
  • 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 !

D

dadahorse91

Guest
Bonjour,
Je n'arrive pas à adapter mon code afin de permettre, quand on clique sur la colonne J "Ranger" ou sur la colonne K "Prendre" de la "Feuil1" sa me le copie sur feuille "Impression" et du coté gauche pour "Ranger" et droite pour "Prendre". Et quand on re-clique sur la cellule de la Feuil1 sa me l'efface de la feuille "Impression"

Merci d'avance.
 

Pièces jointes

Re : Problème de code VBA

Bonjour,

votre code ;
Derli = .Range("A65536").End(xlUp).Row + 1
Range("B" & Target.Row & ":I" & Target.Row).Copy .Range("A" & Derli)


est prévu pour copier une ligne. Si vous voulez copier l'ensemble du tableau, dans ....":I" & Target.Row.... remplacez Target.Row par une variable contenant la dernière ligne de ce tableau ( comme vous l'avez fait pour déterminer la dernière ligne de la feuille "impression")

A+

et merci pour If Target.Count = 1 And Target.Column = 10 And Target.Row > 1 Then
 
Re : Problème de code VBA

Je ne comprend pas le soucis !

actuellement si vous cliquez (en J ou en K) au regard d'un article , dans la cellule cliquée apparait Fait et la feuille impression est mise à jour comme souhaitée
si on clique sur Fait, la ligne est effacée de la feuille impression

C'est exactement votre desiderata !!

Bonne suite

NB: test effectué sur Excel 2003
 
Re : Problème de code VBA

Cela ne fonctionne pas correctement sur la colonne K quand tu sélectionne plusieurs cellules, pour la colonne J quand tu sélectionne plusieurs cellules et ensuite déselectionne il en reste un qui ne s'efface pas.
 
Re : Problème de code VBA

Re,

effectivement et même pour un seul article c'est hasardeux!

Pour la partie If Target.Count = 1 And Target.Column = 10 And Target.Row > 1 Then

Vous pouvez (ou même devez) supprimer l'utilisation de la variable Fait qui est toujours à False; de plus le contenu de la cellule en colonne J nous renseigne savoir le traitement est fait ou non.

Vous devez supprimer les Target.Offset(, 1).Select qui n'apportent que confusion, à chaque clic dans la colonne J on se retrouve en colonne K. En les supprimant on reste sur la cellule cliquée.

Sinon dans la partie If Target = "" Then .... Else ( partie écriture dans la feuille Impression) rien à signaler.

Par contre dans la partie Else .... End If ( partie suppression de l'écriture en feuille Impression) plusieurs choses:

Derli = .Range("A65536").End(xlUp).Row + 1 on cherche la dernière ligne écrite en colonne A, faire +1 nous donne la ligne d'après. c'était utile dans la partie écriture pour commencer l'écriture sur la ligne vide suivant les dernières données. Donc on supprime +1 ( mais c'est plus pour le principe car ça ne créait pas de dysfonctionnements)

Entre For Each cell et Next on cherche dans la plage de la feuille Impression le libellé de l'article pour lequel on clique en colonne J pour le supprimer. Mais:

Les libellés en feuille Impression sont en colonne A et on trouve:
For Each cell In .Range("J2:J" & Derli)

Le libellé en feuille 1 se trouve 8 colonnes avant la cellule J (dans laquelle on vient de cliquer) et on trouve:
If Target.Offset(, 1) = cell Then ......

il y a peu de chance que l'on trouve l'article !

Puis on trouve :If Target.Offset(, 1) = cell Then cell.EntireRow.Delete

Sachant qu'il y a deux tableaux côte à côte en feuille impression (1 pour les articles à ranger, l'autre pour les articles à prendre), le fait de supprimer la ligne entière dans le premier tableau va aussi supprimer une ligne de l'autre tableau. Il faut donc restreindre la suppression aux colonnes A à H :

Code:
.Range("A" & cell.Row & ":H" & cell.Row).Delete Shift:=xlUp


Toutes ces remarques sont valables et à adapter pour la partie If Target.Count = 1 And Target.Column = 11 And Target.Row > 1 Then .

Bon courage,

A+
 
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
791
Réponses
2
Affichages
242
Réponses
7
Affichages
368
Retour