Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Première occurrence dans plage variable

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

B

be090129

Guest
Bonjour à tous,

ma problématique est la suivante :

je souhaite conserver le première cellule de la colonne A différente de 0 dans chaque intervalle défini par ma colonne B.

C est assez difficile à décrire mais avec la pièce jointe c'est beaucoup plus clair. Dans le fichier, le colonne C en jaune est le résultat que je souhaite obtenir.

Je suis passé par des
Code:
INDEX(A:A;EQUIV(VRAI;A:A<>0;0)
mais il ne tient pas compte de mon intervalle, ... rien à faire.

Merci pour votre aide
 

Pièces jointes

Re : Première occurrence dans plage variable

Bonsoir be090129 et bienvenue sur le forum,

Sans conviction et en sortant ma boule de cristal 🙄
Feuil1, le résultat est renvoyé en colonne D au regard de la colonne C pour comparaison.

VB:
Sub Test()
Dim i As Long, Derli As Long, x As String
Derli = Range("B" & Rows.Count).End(xlUp).Row
i = 1: x = ""
Do Until i = Derli + 1
  If IsNumeric(Cells(i, 1)) And Cells(i, 1) <> "" And Cells(i, 2) <> x Then
    Cells(i, 4) = Cells(i, 1)
    x = Cells(i, 2)
  Else
    Cells(i, 4) = 0
  End If
  i = i + 1
Loop
End Sub

Au vue des données figurant en colonne A, je n'est pas trouvé mieux que la condition ci-dessous pour tester les valeurs.
If IsNumeric(Cells(i, 1)) And Cells(i, 1) <> ""
Au final, je doute que cela puisse suffire 😛

Klin89
 
Re : Première occurrence dans plage variable

Bonjour Klin89,

Merci beaucoup, cela fonctionne parfaitement ( ça prend un peu de temps car je le fais sur 15 000 lignes ) mais le résultat est la.

Encore merci
 
Re : Première occurrence dans plage variable

Re be090129,

VB:
Sub Test2()
Dim C As Range, i As Long, x As String, Tablo
With Range("A1:A" & Cells(Rows.Count, 2).End(xlUp).Row)
  i = 1: x = ""
  ReDim Tablo(1 To .Cells.Count)
  For Each C In .Cells
    If IsNumeric(C) And C <> "" And C.Offset(o, 1) <> x Then
      Tablo(i) = C: x = C.Offset(o, 1)
    Else
      Tablo(i) = 0
    End If
    i = i + 1
  Next
  Range("D1").Resize(UBound(Tablo)) = Application.Transpose(Tablo)
End With
End Sub

Klin89
 
Re : Première occurrence dans plage variable

Bonjour be090129,

Un essai par formule.

Les cellules C2, D2, E2 contiennent des formules matricielles à copier vers le bas.
La cellule F2 (résultat) contient une formule normale à copier vers le bas.
Les colonnes C à E peuvent par le suite être masquées.

Formule matricielle en C2:
Code:
=MAX(SI($B$1:B1=$B$2:B2;"";LIGNE($B$2:B2)))
Formule matricielle en D2:
Code:
=MIN(SI(B2:$B$16000<>B3:$B$16001;LIGNE(B2:$B$16000);""))
Formule matricielle en E2:
Code:
=EQUIV(VRAI;ESTNUM(CNUM(SUPPRESPACE(INDIRECT("A" & C2 & ":A" & D2))));0)
Formule normale en F2 (résultat):
Code:
=SI(LIGNES(INDIRECT("A" & C2 & ":A" & LIGNE()))=E2;SI(ESTNUM(CNUM(SUPPRESPACE(A2)));CNUM(SUPPRESPACE(A2));"");"")
 

Pièces jointes

Re : Première occurrence dans plage variable

Bonjour mapomme, bonjour klin89,

merci à vous pour vos réponses. Les deux fonctionnent parfaitement j'utilise la macro VBA de klin89 car vraiment très rapide. Avec la formule cela prend beaucoup plus de temps mais merci beaucoup de ton aide.

Bonne journée
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Y
Réponses
8
Affichages
707
yannick6174
Y
R
Réponses
3
Affichages
914
S
  • Résolu(e)
Réponses
6
Affichages
2 K
Serge6926
S
2
Réponses
6
Affichages
920
29Denis87
2
T
Réponses
0
Affichages
1 K
titoun007
T
D
  • Question Question
Réponses
2
Affichages
2 K
Decouverte Excel
D
S
Réponses
43
Affichages
5 K
Sonia2020
S
N
Réponses
21
Affichages
3 K
Nicolas 1982
N
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…