Joe.levrai,
Merci de votre aide !!! Infiniment ! je suis d'accord avec vous que la solution "autofill" marche ! Mais j'ai insisté sur l'autre formule puisque pour la suite de mon outils, celle ci est je pense indispensable.
En effet, une fois que ma base de données est actualisée avec l'import de mon tableau excel, j'ai crée un userform qui effectue une recherche et sélectionnent les lignes qui correspondent aux trois critères suivant:
- intervalle de date
- département
- MOA
Avec la méthode autofill, lorsque j'effectue ma recherche et que mes lignes, sélectionnées, se collent dans mon tableau, la colonne "MOA" apparait avec le code suivant (ce qui fait bugger la formule puisque nous ne sommes plus dans le tableau BASEDEDONNEES mais dans RESULTATD'ETUDE):
=SIERREUR(RECHERCHEV(BASEDEDONNEES[N° de SIRET/SIREN];MOAPUBLICEP;2;FAUX);"Information manquante")
Si j'arrive à coder dès le début avec la ligne de code, je n'aurai plus de problème puisque dans chaque tableau, je forcerai la formule pour ma colonne MOA:
wsCible.Cells(2, 11).Resize(wsCible.UsedRange.Rows.Count, 1).FormulaLocal = "=SIERREUR(RECHERCHEV([N° de SIRET/SIREN];MOAPUBLICEP;2;[FAUX]);""Information manquante"")"
,
je pense pouvoir réutiliser ce code dans celui me permettant de sélectionner mes lignes de ma base de données:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Sub rechercherDB(dateDebut As Date, _
datefin As Date, _
MOA As String)
Dim ligne As Long, Lr As ListRow
Feuil1.Unprotect
Feuil2.Unprotect
'Permet de supprimer les lignes initialement présentes en faisant une nouvelle recherche
ligne = 1
If Feuil2.ListObjects(1).ListRows.Count > 0 Then Feuil2.ListObjects(1).DataBodyRange.Rows.Delete
With Feuil1.ListObjects(1).DataBodyRange
'permet de sélectionner en fonction des dates et MOA choisie
For ligne = 1 To .Rows.Count
If .Cells(ligne, 1) >= dateDebut And .Cells(ligne, 1) <= datefin And .Cells(ligne, 12).Value = MOA Then
Set Lr = Feuil2.ListObjects(1).ListRows.Add
.Rows(ligne).Copy Lr.Range(1, 1)
End If
Next
End With
Feuil1.Protect
Feuil2.Protect
End Sub |
En forçant la formule dans la colonne, je n'aurai plus de problème pour passer d'une étape à l'autre...
Ai je été clair :p ?
Amicalement !
Partager