XL 2016 VBA recherchev

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

vinz602

XLDnaute Junior
Bonjour,

j'ai essayé de modifier un code, mais mes connaissances en VBA sont très limitées

je souhaite remplir 3 tableaux dans la Feuil1 en allant chercher dans la Feuil2 mes données (Nom de la zone définie: tableau) juste en mettant ma référence dans la colonne A dans les différentes lignes du tableau.
je demande qu'à chaque changement de valeur dans mes tableaux je lance la macro remplir

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A3:A12,A16:A25,A29:A38")) Is Nothing Then
Call remplir
End If
End Sub


j'ai donc modifié la macro ci dessous en localisant les 3 tableaux que je souhaite remplir

Sub remplir()
For Each cel In Sheets("Feuil1").Range("A3:A12,A16:A25,A29:A38")
If cel.Offset(0, 1).Value = "" And cel.Value <> "" Then
cel.Offset(0, 1).FormulaLocal = "=RECHERCHEV(A3;tableau;2;FAUX)"
End If
Next cel
For Each cel In Sheets("Feuil1").Range("A3:A12,A16:A25,A29:A38")
If cel.Offset(0, 2).Value = "" And cel.Value <> "" Then
cel.Offset(0, 2).FormulaLocal = "=RECHERCHEV(A3;tableau;3;FAUX)"
End If
Next cel
End Sub


je n'arrive pas à adapter la macro pour prendre uniquement dans la formule recherchev la cellule que je travaille (A3) pour ma première ligne du tableau
j'ai essaye avec une formule =RECHERCHEV(cell.value;tableau;3;FAUX) mais ça plante 🙁
avez vous une idée pour m'aider me permettant d'adapter soit la macro ou la formule à chaque ligne?
et au passage quand je réinitialise le tableau en supprimant tous le contenu des cellules des tableaux tout plante aussi .

en espérant que vous puissiez m'aider 🙂


 

Pièces jointes

Bonjour

Merci de ta réponse sousou alors pour qu'il accepte il faut le mettre entre "& &".

je viens de résoudre mon problème avec cette macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim der_lig As Long
Dim code_art As String
Dim ch_art As String
On Error Resume Next
If Not Intersect(Target, Range("A3:A31,A35:A63,A67:A95")) Is Nothing Then
T = Target.Row

code_art = Range("A" & T)
With Worksheets("Tarif2020")
der_lig = (.Cells(100000, 1).End(xlUp).Row) + 1


For i = 2 To der_lig
ch_art = .Cells(i, 1)

If ch_art = Range("A" & T) Then
Sheets("PDV").Range("B" & T) = .Cells(i, 2)
Sheets("PDV").Range("C" & T) = .Cells(i, 3)
Exit Sub
End If
Next

MsgBox "Code Article non trouvé ou pas dans le tarif"
End With
End If
End Sub


Merci tout de même pour ton 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

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
231
Réponses
4
Affichages
143
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
247
Réponses
3
Affichages
598
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
75
Retour