Re : Problème avec RECHERCHEV et doublons
Re bonjour
j ai une dernière question
si le code en VBA je veux le mettre sur une autre feuille mets qui intervienne sur la feuille en question
faut il rajouter une instruction de depart et de retour
car je voudrais l inclure dans le code vba que j ai deja dans l'autre feuille qui me remplit les lignes "Client"REF1" ect.. et qui continue le reste
je mets un bout de code pour mieux comprendre
et je voudrais y rajouter ce fameux code VBA
Sub Recap()
Dim h&, lig&, i&, d As Object, ref As Range
Application.ScreenUpdating = False
ActiveSheet.AutoFilterMode = False
h = [A65536].End(xlUp).Row 'hauteur du tableau
[O2:AA65536].ClearContents 'RAZ
lig = 2 '1ère ligne à remplir
For i = 2 To h
If Application.CountIf([A1].Resize(i - 1), Cells(i, 1)) = 0 Then 'NB.SI
[A1].Resize(h).AutoFilter 1, Cells(i, 1).Text 'filtre automatique
Set d = CreateObject("Scripting.Dictionary")
For Each ref In [A2:M2].Resize(h - 1).SpecialCells(xlCellTypeVisible)
If Trim(ref) <> "" Then d(ref.Value) = ref.Value
Next
If d.Count Then
Cells(lig, "O").Resize(, d.Count) = d.keys
lig = lig + 1
End If
End If
Next
ActiveSheet.AutoFilterMode = False 'désactive le filtre
Application.Goto [O1], True 'facultatif
End Sub
La feuille "Analyse" et la feuille en question
et la feuille "Enregistrer_commande" et la ou il y as ce code
et qui enregistre aussi sur une feuille "LISTING"
Sub Enregistrer_Click()
Dim Ligne As Long
Ligne = Sheets("analyse").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("analyse").Range("A" & Ligne).Value = Sheets("Enregistrer_commande").Range("G8").Value
Sheets("analyse").Range("B" & Ligne).Value = Sheets("Enregistrer_commande").Range("C15").Value
Sheets("analyse").Range("C" & Ligne).Value = Sheets("Enregistrer_commande").Range("C16").Value
Sheets("analyse").Range("D" & Ligne).Value = Sheets("Enregistrer_commande").Range("C17").Value
Sheets("analyse").Range("E" & Ligne).Value = Sheets("Enregistrer_commande").Range("C18").Value
Sheets("analyse").Range("F" & Ligne).Value = Sheets("Enregistrer_commande").Range("C19").Value
Sheets("analyse").Range("G" & Ligne).Value = Sheets("Enregistrer_commande").Range("C20").Value
Sheets("analyse").Range("H" & Ligne).Value = Sheets("Enregistrer_commande").Range("C21").Value
Sheets("analyse").Range("I" & Ligne).Value = Sheets("Enregistrer_commande").Range("C22").Value
Sheets("analyse").Range("J" & Ligne).Value = Sheets("Enregistrer_commande").Range("C23").Value
Sheets("analyse").Range("K" & Ligne).Value = Sheets("Enregistrer_commande").Range("C24").Value
Sheets("analyse").Range("L" & Ligne).Value = Sheets("Enregistrer_commande").Range("C25").Value
Sheets("analyse").Range("M" & Ligne).Value = Sheets("Enregistrer_commande").Range("C26").Value
On Error GoTo Blème
myyear = Year(Range("H5"))
couryear = Year(Now)
If myyear = couryear Then GoTo suite Else MsgBox ("ATTENTION! soit tu as rentré une date qui n'appartient pas à l'année en cours, soit tu n'as pas respecté le format de date (JJ/MM/AA), soit tu as oublié d'inscrire la date !")
Range("H5").ClearContents
Exit Sub
suite:
Style = vbOKCancel
Reponse = MsgBox("As-tu bien tout vérifié, parce qu'après c'est plus compliqué de modifier (il faut aller tel à son frère !!). Si c'est bon, clique sur OK ", Style)
If Reponse = vbCancel Then Exit Sub
ActiveSheet.Unprotect
Worksheets("LISTING").Select
Worksheets("LISTING").Rows(3).Select
Selection.Insert
Range("A3
C3").Select
With Selection.Interior
.ColorIndex = 2
.Pattern = xlGray16
.PatternColorIndex = 37
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
Range("A3").Select
Range("A3").Formula = "=MAX(A4:A5000)+1"
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Range("A1").Select
'Coordonnées:
Range("B3").Formula = "=Enregistrer_commande!H5"
Range("C3").Formula = "=Enregistrer_commande!J4"
Range("D3").Formula = "=Enregistrer_commande!D8"
Range("E3").Formula = "=Enregistrer_commande!D10"
Range("F3").Formula = "=Enregistrer_commande!J8"
Range("G3").Formula = "=Enregistrer_commande!J12"
Range("H3").Formula = "=Enregistrer_commande!J10"
Range("I3").Formula = "=Enregistrer_commande!G8"
Range("J3").Formula = "=Enregistrer_commande!G10"
Range("K3").Formula = "=Enregistrer_commande!I15"
'produit 1:
Range("L3").Formula = "=Enregistrer_commande!C15"
Range("M3").Formula = "=Enregistrer_commande!B15"
Range("N3").Formula = "=Enregistrer_commande!D15"
Range("O3").Formula = "=Enregistrer_commande!E15"
Range("P3").Formula = "=Enregistrer_commande!F15"
Range("Q3").Formula = "=Enregistrer_commande!G15"
Range("R3").Formula = "=Enregistrer_commande!H15"
Range("S3").Formula = "=Enregistrer_commande!J15"
'produit 2:
Range("T3").Formula = "=Enregistrer_commande!C16"
Range("U3").Formula = "=Enregistrer_commande!B16"
Range("V3").Formula = "=Enregistrer_commande!D16"
Range("W3").Formula = "=Enregistrer_commande!E16"
Range("X3").Formula = "=Enregistrer_commande!F16"
Range("Y3").Formula = "=Enregistrer_commande!G16"
Range("Z3").Formula = "=Enregistrer_commande!H16"
Range("AA3").Formula = "=Enregistrer_commande!J16"
'produit 3:
Range("AB3").Formula = "=Enregistrer_commande!C17"
Range("AC3").Formula = "=Enregistrer_commande!B17"
Range("AD3").Formula = "=Enregistrer_commande!D17"
Range("AE3").Formula = "=Enregistrer_commande!E17"
Range("AF3").Formula = "=Enregistrer_commande!F17"
Range("AG3").Formula = "=Enregistrer_commande!G17"
Range("AH3").Formula = "=Enregistrer_commande!H17"
Range("AI3").Formula = "=Enregistrer_commande!J17"
'produit 4:
Range("AJ3").Formula = "=Enregistrer_commande!C18"
Range("AK3").Formula = "=Enregistrer_commande!B18"
Range("AL3").Formula = "=Enregistrer_commande!D18"
Range("AM3").Formula = "=Enregistrer_commande!E18"
Range("AN3").Formula = "=Enregistrer_commande!F18"
Range("AO3").Formula = "=Enregistrer_commande!G18"
Range("AP3").Formula = "=Enregistrer_commande!H18"
Range("AQ3").Formula = "=Enregistrer_commande!J18"
'produit 5:
Range("AR3").Formula = "=Enregistrer_commande!C19"
Range("AS3").Formula = "=Enregistrer_commande!B19"
Range("AT3").Formula = "=Enregistrer_commande!D19"
Range("AU3").Formula = "=Enregistrer_commande!E19"
Range("AV3").Formula = "=Enregistrer_commande!F19"
Range("AW3").Formula = "=Enregistrer_commande!G19"
Range("AX3").Formula = "=Enregistrer_commande!H19"
Range("AY3").Formula = "=Enregistrer_commande!J19"
et termine
par
'selectionne la feuille des commandes
Worksheets("Enregistrer_commande").Select
Range("H5").Select
Range("H5") = Now
Range("G8").ClearContents
Range("C15:C26").ClearContents
Range("F15:F26").ClearContents
Range("B15:B26").ClearContents
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("H3").Select
ActiveSheet.Unprotect
Range("H5").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Exit Sub
Comment je peux introduire le code vba
Merci
Merci job75
merci Rachid_0661