Copie sélective
Bonjour à tous,
Je cherche une alternative à la solution ci-dessous qui ne me convient pas parfaitement.
J'ai une feuille Excel où en colonne H j'ai, de temps à autre, le texte "A CHECKER". Ces cellules sont en fait liées à des formulaires VBA et quelques contrôles. Lorsque les différentes conditions sont remplies (et les conditions peuvent être différentes à chaque ligne), le texte s'affiche sinon il n'y a rien.
J'aimerais reprendre "un résumé" des points restants "A CHECKER" à un autre endroit de la feuille (en bas en l’occurrence). Il s'agirait d'une copie sélective de mon tableau ne reprenant que les lignes où "A CHECKER" figure.
J'ai l'habitude de faire un filtre sur ma colonne H, n'afficher que les lignes "A CHECKER", ensuite copier ma sélection (qui ne reprend que les colonnes B à E - les colonnes F à H ne m'intéressent pas, il s'agit juste d'informations temporaires pour la formule en H "A CHECKER") et venir la coller en bas de ma feuille (également de B à E).
J'aimerais automatiser ce processus, pour que mon résumé s'affiche en temps réel après chaque modification dans la feuille (sans avoir à refaire sans cesse la même chose manuellement). Je pourrais faire en sorte d'enregistrer les manipulations et puis retravailler en VBA. Mais mon problème c'est que je n'aime pas passer par le filtre. J'aurais souhaité une solution alternative qui passe en revue chaque cellule de la colonne H (un peu le principe du SOMME.SI) et qui copie les cellules B à E de cette même ligne, vient les coller à la première ligne vide en bas de la feuille, puis passe à la ligne suivante, etc.
Est-ce qu'il existe une fonction agissant de la sorte?
Je vous remercie d'avance,
Bonjour,
D'après ta description, il semblerait plus facile et plus simple d'avoir un onglet A CHECKER ...
Cet onglet aurait l'avantage d'ètre systématiquement à jour ...
Quant à la copie sélective que tu envisages .... elle peut se faire avec des formules ou une macro ...
Au cas ou tu voudrais une solution personnalisée ... tu peux joindre ton fichier ...
Salut sdevers, James007,
voici une solution...
Il me manque une info : le texte "A CHECKER" s'affiche-t-il par formule ou VBA, auquel dernier cas, il conviendrait de retirer les apostrophes des première et dernière lignes du test de la macro.
Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
Application.ScreenUpdating = False
'
'If Not Intersect(Target, Range("H" & Target.Row)) Is Nothing Then
iRow1 = Range("A" & Rows.Count).End(xlUp).Row
iRow2 = Range("B" & Rows.Count).End(xlUp).Row
'
If iRow2 > iRow1 Then Range("B" & iRow1 + 1 & ":E" & iRow2).ClearContents
For x = 1 To iRow1
If UCase(Cells(x, 8)) = "A CHECKER" Then
iLig = iLig + 1
Range("B" & (iRow1 + 1) + iLig & ":E" & (iRow1 + 1) + iLig).Value = Range("B" & x & ":E" & x).Value
End If
Next
'End If
'
Application.EnableEvents = True
Application.ScreenUpdating = True
'
End SubA+