XL 2013 VBA Vlookup

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

mmalzert

XLDnaute Occasionnel
Bonjour,

Je galère avec un code tout simple.
Code:
ActiveCell.FormulaR1C1 = _
  "=IF(AND(ISNUMBER(&'D10'&*1),&'D10'&<>0),IF(ISERROR(VLOOKUP(&'D10'&*1,[Charges_A_Ignorer.xlsx]Feuil1!&'a1'&:&'a300'&,1,FALSE)),&'X'&,&''&),&''&)"

Sans VBA, la formule est :
Code:
=si(et(estnum(a1*1);a1<>0);si(esterreur(recherchev(a1*1;[Charges_A_Ignorer.xlsx]Feuil1!$A:$A;1;faux));"x";"");"")

Franchement je ne sais pas trop si la synthaxe est correcte non plus.
Je veux bien un coup de main pour avancer.

Mon code entier si ca peut aider.
Code:
Sub MAJ_Compte()

Dim Rep As String, Fichier As String
NomPrinc = ActiveWorkbook.Name
NomPrincOnglet = ActiveSheet.Name
Dim ws As Worksheet


Chemin = InputBox("Répertoire de mise à jour", "Seléction du chemin d'accès")
Fichier = Dir(Chemin & "\*.*")

Application.ScreenUpdating = False
Application.DisplayAlerts = False


'------------------------------------------------------------------------------------------------------------------------
Do While Fichier <> ""
  
  Workbooks.Open Filename:=Chemin & "\" & Fichier, UpdateLinks:=0
  ActiveWorkbook.Sheets("Kosten_Costs").Activate
 

  With activeWorkbooks
  Range("aa10").Select
ActiveCell.FormulaR1C1 = _
  "=IF(AND(ISNUMBER(&'D10'&*1),&'D10'&<>0),IF(ISERROR(VLOOKUP(&'D10'&*1,[Charges_A_Ignorer.xlsx]Feuil1!&'a1'&:&'a300'&,1,FALSE)),&'X'&,&''&),&''&)"
  
  
  
Range("AA10").Select
  Selection.Copy
  Range(Selection, Selection.End(xlDown)).Select
  Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
  SkipBlanks:=False, Transpose:=False
'Range("AA10").Select
'  Range(Selection, Selection.End(xlDown)).Select
'  Selection.Copy
'  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'  :=False, Transpose:=False
  
 

  Range("d10").Select
  ActiveWorkbook.Save
  ActiveWindow.Close



Fichier = Dir

  
End With
Loop

Merci pour votre aide.
 
Dernière édition:
Bonjour

Certains pourront peut être, mais moi, perso, vu mon niveau en VBA, je ne peux pas voir d'où vient le pb sans un petit fichier exemple... Il ni y a pas forcément besoin du fichier réel, juste un exemple simplifié ayant la même structure...

@ plus
 
Bonsoir mmalzert, CISCO


@mmalzert: quelques erreurs à corriger. Evite tous ces Select.

VB:
With ActiveSheet
.Range("aa10").Formula = Ta formule
.Range("aa10").Copy .Range("aa11")
.Range("aa11").AutoFill .Range("aa11:aa" & .Range("aa65536").End(xlDown).Row)
End With

Application.DisplayAlerts = False
ActiveWorkbook.Close True
 
Dernière édition:
Bonjour à tous

-> Loup Solitaire
Quitte à éviter les Select, autant aussi éviter la copie et l'AutoFil, non ? 😉
VB:
Sub Macro1()
' Staple1600 -juillet 2016

Dim strFormul$
strFormul = "=IF(NOT(AND(ISNUMBER(RC[-1]*1),RC[-1]<>0)),"""",VLOOKUP(RC[-1],Feuil2!RC[-1]:R[8]C,2,0))"
  
With Feuil1
  .Range("B2:B" & .Cells(Rows.Count, 1).End(xlUp).Row).FormulaR1C1 = strFormul
End With
End Sub

NB: Ceci n'est qu'un code exemple avec une variante de formule.
Donc faire les ajustements nécessaires pour le classeur réel.
 
- 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

Réponses
18
Affichages
237
Réponses
10
Affichages
486
Réponses
2
Affichages
238
Réponses
17
Affichages
934
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
233
Réponses
2
Affichages
407
Retour