Problème VBA erreur

  • 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

bonjour Flux

Quelques petites corrections

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("A" & I).Value = Worksheets("Feuil2").Range("B" & J).Value Then
Worksheets("Feuil1").Range("A" & I).Value = Worksheets("Feuil2").Range("A" & J).Value
End If
Next j
Next I
 
Re : Problème VBA erreur

Bonjour

à essayer

for I = 1 to sheets("Feuil1").range("A65536").End(xlUp).row

même style pour J

A noter la préférence du Up qui détecte la dernière cellule remplie et s'affranchit des trous dans les tableaux (down s'arrête à lapremière cellule vide rencontrée)
 
Re : Problème VBA erreur

bonjour Flux
code corrigé
Sub recherche()
Dim I As Integer, J As Integer
With Worksheets("Feuil1")
For I = 1 To .Range("A1", .Range("A65536").End(xlUp)).Count
For J = 1 To Worksheets("Feuil2").Range("A1", Worksheets("Feuil2").Range("A65536").End(xlUp)).Count
If .Range("A" & I).Value = Worksheets("Feuil2").Range("B" & J).Value Then
.Range("A" & I).Value = Worksheets("Feuil2").Range("A" & J).Value
End If
Next J
Next I
End With
End Sub

à bientôt
 
Re : Problème VBA erreur

Merci pour ton aide mais j'ai encore un problème

J'ai donc ce bout de code

Code:
Sub insert()

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("A" & I).Value = Worksheets("Feuil2").Range("B" & j).Value Then
            Worksheets("Feuil1").Range("A" & I).Value = Worksheets("Feuil2").Range("A" & j).Value
        End If
    Next j
Next I


End Sub

Je l'ai mis dans Feuil1(Feuil1) mais j'ai l'erreur 400.

Dois-je créer un module, le mettre dans la partie ThisWorkBook ?

Merci de votre aide.
 
- 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
4
Affichages
735
Réponses
8
Affichages
391
Retour