À l'aide: copie de cell

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

H

hestiahv

Guest
Bonjour à tous.

J’ai une urgence incroyable qui dépasse mes capacités. J’espère que quelqu’un pourra m’aider

Le fichier A&E&C contient deux feuilles :
Load List
Et
Feuille 3

Le fichier Provenance contient une feuille :
Feuille1

J’ai déjà un code, gracieuseté des membres de votre forum,
Ce dernier à pour but que lorsqu’un numéro est entré entre (A15 :A500) dans Load List
Et que ce dernier ce retrouve dans Feuille 3, bien l’information sélectionné sera copié.

Le tout fonctionne à merveille.

Malheureusement, lorsque je fait un copier collé provenant d’un autre fichier seul la description du premier numéro apparait pour tout les numéro…..

Pour faire un test et comprendre le fonctionnement, copier un numéro de la feuille 3 dans la feuille Load list ( Cell A15 : A500)

Fait un à un : Copié A5 vers Load list, puis Copié A6 ainsi de suite fonctionne mais lors que fait en plage…..

Maintenant procédez de la même méthode mais en copiant la plage (A5 :A9) de Provenance vers Load list. L’information ne s’étend pas

Merci beaucoup
D'avance
 

Pièces jointes

Re : À l'aide: copie de cell

Bonsoir le forum, le fil,

Je ne suis pas sur d'avoir bien compris votre message.

Pour la macro je croyait quelle était attaché à mon fichier:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Feuille As Worksheet, Résultat As Range
Set Target = Intersect(Target, Range("a15:a600"))
If Target Is Nothing Then Exit Sub
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name <> "Load List" Then
Set Résultat = Feuille.Columns(1).Find(What:=Target.Value, LookAt:=xlWhole)
If Not Résultat Is Nothing Then
Target.Offset(0, 1) = Résultat.Offset(0, 1)
Target.Offset(0, 14) = Résultat.Offset(0, 2)
Target.Offset(0, 13) = Résultat.Offset(0, 4)
Target.Offset(0, 16) = Résultat.Offset(0, 3)
Exit Sub
End If
End If
Next
End Sub

Pour ce qui est du café, je tolère mal les activant mais merci pour l'offre
 
Re : À l'aide: copie de cell

Merci Laval,

Je n'avais pas remarqué que tu étais en ligne. Faut règler ce probleme.
Si non on ne peu pas envoyer le fichier....

Appelle moi dès que tu vois que tout est réglé. Je ferai de même
 
Re : À l'aide: copie de cell

Bonjour le Fil, les participants,

Hestia,

As-tu essayé de modifier ton en tête de macro?
Je crois déja avoir vu ce genre de problème.

Je fais des recherches et je te reviens.

Mtl
 
Re : À l'aide: copie de cell

Salut lavaltt et le forum
Quelques remarques :
- Utilise les balises de code (#), ça rend sa lecture plus facile
- Ne jamais utiliser des noms de variables qu'Excel peut lui-même utiliser
- On ne force pas une variable système (comme target) : comme son nom l'indique, Excel la met à jour.
- Une variable target peut ne correspondre qu'à une seule et unique cellule (comme dans Worksheet_BeforeDoubleClick ou Worksheet_BeforeRightClick), mais elle peut aussi correspondre à plusieurs cellules.
Un essais :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Feuille As Worksheet, Résultat As Range, Cel As Range, Plage As Range
Set Plage = Intersect(Target, Range("a15:a600"))
If Plage Is Nothing Then Exit Sub
For Each Cel In Plage
    For Each Feuille In ThisWorkbook.Worksheets
        If Feuille.Name <> "Load List" Then
            Set Résultat = Feuille.Columns(1).Find(What:=Cel, LookAt:=xlWhole)
            If Not Résultat Is Nothing Then
                Cel.Offset(0, 1) = Résultat.Offset(0, 1)
                Cel.Offset(0, 14) = Résultat.Offset(0, 2)
                Cel.Offset(0, 13) = Résultat.Offset(0, 4)
                Cel.Offset(0, 16) = Résultat.Offset(0, 3)
                Exit For
            End If
        End If
    Next Feuille
Next Cel
End Sub
Comme target peut contenir plusieurs cellules, dont certaines n'appartenant pas à la zone qui nous interesse, il fait les extraire => c'est le but de la variable Plage. Ensuite on fait une boucle qui va parcourir chacune des cellules de Plage, au travers du code fournis. Mais si on trouve le résultat souhaité, avant d'avoir parcouru toutes les cellules de Plage, on ne peut pas sortir de la macro, seulement de la boucle concernée => c'est le but du remplacement de "Exit Sub" par "Exit For", qui fait sortir de la boucle Feuille, et donc on passe à la Cel suivante.
A+
 
- 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
7
Affichages
987
Réponses
7
Affichages
1 K
P
Réponses
6
Affichages
2 K
Pat13127
P
N
Réponses
11
Affichages
2 K
NathalieQSE
N
C
Réponses
2
Affichages
520
cowboy09310
C
B
Réponses
2
Affichages
1 K
briatexte
B
K
Réponses
5
Affichages
23 K
K
Retour