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

Problème VBA Erreur 400

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

F

Flux

Guest
Bonjour,

Je débute en VBA mais pas en programmation en générale.
Je souhaiterais réaliser une indexation pour une feuille.

Je m'explique

Dans la Feuille1 J'ai

TOTO
TATA
TITI
TOTO
TITI
TATA

Dans la feuille2 j'ai
Col1 Col2
1 TOTO
2 TITI
3 TATA

Je souhaite remplacer TOTO, TATA, TITI dans la feuille 1 par les valeurs de col1 dans la feuille2

J'ai pondu ce bout de code mais marche po

sub recherche()

For I = 1 To Worksheets("Feuil1").Range("A1", [A1].End(xlDown)).Count
For j = 1 To Worksheets("Feuil2").Range("B1", [A1].End(xlDown)).Count
If Worksheets("Feuil1").Range("AI").Value = Worksheets("Feuil2").Range("BJ").Value Then
Worksheets("Feuil1").Range("AI").Value = Worksheets("Feuil2").Range("AJ").Value
End If
Next j
Next I

end sub

Si quelqu'un peux m'aider ?

Merci
Bonne journée
 
Re : Problème VBA Erreur 400

Bonjour Flux,

Je te propose une réponse utilisant les tableaux dynamiques :

Option Explicit
Option Base 1
Sub recherche()
Dim i As Integer, j As Integer, n As Integer, l As Integer
Dim Tab1 As Variant, Tab2 As Variant

n = Worksheets("Feuil1").Range("A65536").End(xlUp).Row
l = Worksheets("Feuil2").Range("B65536").End(xlUp).Row

Tab1 = Worksheets("Feuil1").Range("A2:A" & n)
Tab2 = Worksheets("Feuil2").Range("A2:B" & l)

For i = 1 To n - 1
For j = 1 To l - 1
If Tab1(i, 1) = Tab2(j, 2) Then
Tab1(i, 1) = Tab2(j, 1)
End If
Next j
Next i
Worksheets("Feuil1").Range("A2:A" & n) = Tab1
End Sub

Cordialement

Bernard
 
Re : Problème VBA Erreur 400

bonjour 🙂


une autre approche par l'utilisation de find :

Code:
Dim c As Range
Dim ce As Range

With Sheets("feuil1")
    For Each c In .Range("a1:a" & .Range("a65536").End(xlUp).Row)
        Set ce = Sheets("feuil2").Columns("B").Find(c)
        If Not ce Is Nothing Then
            c = ce.Offset(0, -1)
        End If
    Next c
End With

salut
 
- 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
5
Affichages
914
Réponses
15
Affichages
788
Réponses
2
Affichages
772
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
453
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
906
Réponses
3
Affichages
923
Réponses
2
Affichages
673
  • Question Question
Microsoft 365 VBA Transpose
Réponses
11
Affichages
982
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…