Comparer 2 cellules dans différents onglets erreur 1004

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

T

tibtelcom

Guest
Bonjour, j'ai un fichier avec 2 onglets, l'onglet 1 mon tableau, l'onglet 2 ma base de données. Je souhaiterai pouvoir inscrire un champ dans une cellule du tableau 1 et qu'automatiquement les autres champ liés à ce que j'ai écrit et qui se trouvent dans la base de données (onglet 2) s'écrivent dans l'onglet 1 :
Feuil1 : une colonne C avec les données (ici un nom) que je rentre, une colonne D où doivent se marquer automatiquement les autres données qui lui sont liées dans la BD.
Feuil2 : une colonne A avec tous les noms (qui va donc comparer si la valeur entrée dans Feuil1 colonne C est présente dans la colonne A) une colonne B où se trouvent les autres infos à mettre dans la colonne D feuil1.
Je joins le fichier excel pour illustrer

Voici mon début de code, pouvez vous me dire ce qui ne va pas stp, merci.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim j, lineMax As Integer

lineMax = Sheets("Feuil2").Range("b65536").End(xlUp).Row


If Target = Range(Cells(ActiveCell.Row, 3).Value) Then

For j = 1 To 4

If Sheets("Feuil1").Cells(ActiveCell.Row, 3) = Sheets("Feuil2").Range("A" & j) Then

Range(Cells(ActiveCell.Row, 4)).Select
Selection.Value = Sheets("Feuil2").Range("B" & j).Value
Else
MsgBox "Nom inconnu"
End If
Next j
End If

End Sub
 

Pièces jointes

Re : Comparer 2 cellules dans différents onglets erreur 1004

Grand salut pour ton 1er message
Si j'ai bien compris ...ceci, attention j'utilise Change et non Selection_Change
efface ta macro et copie en entier celle là..
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column <> 3 Or Target = "" Then Exit Sub
If IsNumeric(Application.Match(Target, Feuil2.[A1:A20], 0)) Then
Target.Offset(, 1) = Feuil2.Cells(Application.Match(Target, Feuil2.[A1:A20], 0), 2)
Else
MsgBox "Nom inconnu"
End If
End Sub
 
Re : Comparer 2 cellules dans différents onglets erreur 1004

Et si je veux par exemple prendre à la place de Feuil2 une feuille dans un autre classeur qui est fermé je fais comment ??
[chemin_du_classeur.xls]!Feuil2.[A:A] ??
 
Re : Comparer 2 cellules dans différents onglets erreur 1004

Par contre comment faire pour prendre les données du fichier xls quand il est fermé
j'ai essayé Worbooks.Open Filename:"C:\X\nom_du_classeur.xls" mais ça ne marche pas
 
Re : Comparer 2 cellules dans différents onglets erreur 1004

Voici une solution
Respect bien le chemin, si tu as des bugs va en fenetre exécution et copie ceci ...
Application.EnableEvents = True
et presse Enter pour retrouver les événements
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column <> 3 Or Target = "" Then Exit Sub
fichier = "'C:\Documents and Settings\Bruno JEUNE\Mes documents\[Materiaux.xls]Plafond'!$A$1:$B$65000"
Application.EnableEvents = False
Target.Offset(, 1).Formula = "=VLOOKUP(" & Target & "," & fichier & ",2,FALSE)"
If Application.IsNA(Target.Offset(, 1)) Then _
MsgBox "Nom inconnu": Target = "": Target.Offset(, 1) = "": Target.Select
Target.Offset(, 1).Value = Target.Offset(, 1).Value
Application.EnableEvents = True
End Sub
 
Re : Comparer 2 cellules dans différents onglets erreur 1004

Voici une solution
Respect bien le chemin, si tu as des bugs va en fenetre exécution et copie ceci ...
Application.EnableEvents = True
et presse Enter pour retrouver les événements
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column <> 3 Or Target = "" Then Exit Sub
fichier = "'C:\Documents and Settings\Bruno JEUNE\Mes documents\[Materiaux.xls]Plafond'!$A$1:$B$65000"
Application.EnableEvents = False
Target.Offset(, 1).Formula = "=VLOOKUP(" & Target & "," & fichier & ",2,FALSE)"
If Application.IsNA(Target.Offset(, 1)) Then _
MsgBox "Nom inconnu": Target = "": Target.Offset(, 1) = "": Target.Select
Target.Offset(, 1).Value = Target.Offset(, 1).Value
Application.EnableEvents = True
End Sub

j'aurais une question par rapport à ce code, comment faire en sorte que cette macro ne s'applique pas sur toute la colonne 3 mais par exemple que sur la plage C4:C10 ?
Merci
 
Re : Comparer 2 cellules dans différents onglets erreur 1004

re bonjour,
Voici j'ai modifié la 1ere ligne et la 3eme
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range(Target.Address), Range("C4:C10")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
fichier = "'C:\Documents and Settings\Bruno JEUNE\Mes documents\[Materiaux.xls]Plafond'!$A$1:$B$65000"
Application.EnableEvents = False
Target.Offset(, 1).Formula = "=VLOOKUP(" & Target & "," & fichier & ",2,FALSE)"
If Application.IsNA(Target.Offset(, 1)) Then _
MsgBox "Nom inconnu": Target = "": Target.Offset(, 1) = "": Target.Select
Target.Offset(, 1).Value = Target.Offset(, 1).Value
Application.EnableEvents = True
End Sub
 
- 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
4
Affichages
736
Réponses
5
Affichages
915
Réponses
2
Affichages
411
Réponses
8
Affichages
785
Retour