Problème vba "vlookup"

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

B

Bad_Dream

Guest
Bonjour, je suis vraiment débutant en toute forme de codage, et je dois faire une sorte de maccro sur vba... mais ca cloche! Est ce que qqn pourrait m'expliquer ce qui ne va pas avec le programme suivant? Merci

Private Sub CommandButton1_Click()
Dim a As Long
Dim k As Long



a = 1
For k = 9 To 2701 'liste des cases de c/c
If Worksheets("cc").Cells(k, 1) <> "" Then 'si les cases ne sont pas vides
a = a + 1 'le a permet de ne pas s'aligner sur les liges du feuillet cc
Worksheets("vba").Cells(a, 1) = Worksheets("cc").Cells(k, 1) 'c/c
Worksheets("vba").Cells(a, 2) = Worksheets("cc").Cells(k, 2) 'Machines
Worksheets("vba").Cells(a, 3) = WorksheetFunction.VLookup(Worksheets("vba").Cells(a, 1), Range(Worksheets("cc").Cells(2701, 1), Worksheets("cc").Cells(2701, 3)), 3) (<= le problème semble être sur cette ligne) End If
Next k




End Sub



Merci d'avance
 
Re : Problème vba "vlookup"

Je souhaite que a partir d'un onglet apellé "cc", inscrire certaines de ces valeurs ds un autre onglet "vba". Pr les deux premiers colonnes ca marche, mais pour la troisieme (faisant intervenir une recherche), malheuresement non.
Sinon merci pour ta réponse mais aprés essai cela ne marche tjs pas :/
 
Re : Problème vba "vlookup"

J'ai créé un fichier type avec en commentaire de la macro ce que souhaiterais obtenir.
Merci de vos diverses réponses, mais cela ne fonctionne toujours pas. J'espere que le fichier ci-joint pourra vous éclairer sur ce que je souhaiterais
 

Pièces jointes

Re : Problème vba "vlookup"

Bonsoir,

Nous avons oublié une chose sur la fonction VLookup/RECHERCHEV, c'est que la recherche de la valeur se fait sur la 1ère colonne de la plage/matrice (voir l'aide)...
Donc ici cette fonction n'est pas adaptée au problème.
Voici une solution qui utilise la fonction Match (EQUIV) :

Private Sub CommandButton1_Click()
Dim a As Long
Dim k As Long
Dim test As Byte
On Error Resume Next

a = 1
For k = 9 To 2701 'liste des cases de c/c
If Worksheets("cc").Cells(k, 1) <> "" Then 'si les cases ne sont pas vides
a = a + 1 'le a permet de ne pas s'aligner sur les liges du feuillet cc
Worksheets("vba").Cells(a, 1) = Worksheets("cc").Cells(k, 1) 'c/c
Worksheets("vba").Cells(a, 2) = Worksheets("cc").Cells(k, 2) 'Machines
test = 0
test = Application.Match(Worksheets("vba").Cells(a, 1), Worksheets("cc").Range("A2701:C2701"), 0)
If test Then Worksheets("vba").Cells(a, 3) = Worksheets("cc").Cells(2701, 3)

End If
Next k
End Sub

Ou plus simplement, "vba" étant la feuille active :

Private Sub CommandButton1_Click()
Dim a As Long, k As Long, test as Byte
On Error Resume Next
a = 1
For k = 9 To 2701 'liste des cases de c/c
If Sheets("cc").Cells(k, 1) <> "" Then 'si les cases ne sont pas vides
a = a + 1 'le a permet de ne pas s'aligner sur les liges du feuillet cc
Cells(a, 1) = Sheets("cc").Cells(k, 1) 'c/c
Cells(a, 2) = Sheets("cc").Cells(k, 2) 'Machines
test = 0
test = Application.Match(Cells(a, 1), Sheets("cc").Range("A2701:C2701"), 0)
If test Then Cells(a, 3) = Sheets("cc").Cells(2701, 3)
End If
Next
End Sub

A+
 
Re : Problème vba "vlookup"

Merci beaucoup je penses que c'est qqchose comme ca, mais malheuresmeent cela me donne juste le résultat sur la derniere ligne de mon onglet vba, correspondante a la ligne 2701 3eme colonne. Je penses donc qu'il y a une erreur ds la déclaration de range.
Mais qd je remplace
test = 0
test = Application.Match(Worksheets("vba").Cells(a, 1), Worksheets("cc").Range("A2701:C2701"), 0)
If test Then Worksheets("vba").Cells(a, 3) = Worksheets("cc").Cells(2701, 3)
par
test = 0
test = Application.Match(Worksheets("vba").Cells(a,3).Cells(a,1),Worksheets("cc").Range("A1:C2701);0)
If test Then Worskheets("vba").Cells(a,3)=Worksheets("cc").Cells(2701,3)

Cela ne marche toujours pas.
En tout cas merci pour l'aide !
 
Re : Problème vba "vlookup"

Bonjour Bad Dream,
Pour le calcul de test, j'ai bien sûr essayé de comprendre ce que vous vouliez faire à partir de la formule de votre 1er message. Dites nous donc maintenant avec précision :
- quelle valeur vous recherchez
- dans quelle plage de "cc"
- quelle valeur vous voulez donner à la cellule Cells(a, 3)
A vous (re)lire et 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
4
Affichages
281
Réponses
5
Affichages
914
Réponses
4
Affichages
735
Réponses
1
Affichages
325
Réponses
8
Affichages
782
Retour