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

extraire de cellule x à cellule y

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

boulbidule

XLDnaute Nouveau
Bonjour à tous 🙂

je cherche à copier via mots clés de cellule X à cellule Y vers onglet 2 par exemple

en fait j'ai pas le même nombre de ligne dans chacun de mes exemples,

du coup je pensais dire copier de tel mot à tel mot

par exemple ci dessous pour extraire les prénoms

je pensais faire une règle qui copie de : "bien" à "ce"

merci pour votre aide (très très précieuse 😉 )
 

Pièces jointes

Re : extraire de cellule x à cellule y

Bonjour,
bien et ce sont présents plusieurs fois en colonne A donc que veux-tu obtenir exactement dans le cas présent ?
Le plus simple est de placer manuellement dans ton fichier exemple le résultat attendu.
A+
 
Re : extraire de cellule x à cellule y

Bonjour : )
Oui bien et ce sont toujours au dessus et en dessous du prenom,
Je cherche à extraire les prenoms
Dans une seconde feuille en colonne A,les uns sous les autres dans feuillet 2
 
Re : extraire de cellule x à cellule y

Et y-a-t-il un élément qui distingue les prénoms des autres mots ? Dans ton exemple ils sont en majuscule : est-ce le cas ?
Sont-ils toujours précédés ou suivis du même mots ? Bref quels sont les éléments qui pourraient nous aider à les localiser ?
A+
 
Re : extraire de cellule x à cellule y


et non David 🙁
aucun signe distinctif,
là c'est en majuscule pour l'exemple

je viens de refaire un exemple excel pour te montrer

des fois il y a plusieurs prénoms

il n'y a bien que "bien" et "ce" pour distinguer
 

Pièces jointes

Re : extraire de cellule x à cellule y

A partir des informations fournies ci-joint une possibilité à tester :
Code:
Sub test()
Dim DerLig As Long, T, i As Long, S As String

DerLig = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To DerLig
  S = S & Sheets("Feuil1").Range("A" & i) & " "
Next i

T = Split(Left(S, Len(S) - 1), "bien")

For i = 1 To UBound(T)
  Range("B" & i) = Split(T(i), "ce")(0)
Next i
End Sub
A+
 
Re : extraire de cellule x à cellule y

Bonjour à tous.


Un autre essai :
Code:
Sub toto()
Dim k&, l&, c&, x(), y$()
Const d$ = "bien"
Const f$ = "ce"
  With Feuil1.[A1]: x = Range(.Cells, .Parent.Cells(.Parent.Rows.Count, .Column).End(xlUp).Offset(1)).Value: End With
  With Feuil2.[A1]
    With Application: .ScreenUpdating = 0: .EnableEvents = 0: .Calculation = -4135: End With
    .CurrentRegion.ClearContents
    x(UBound(x), 1) = f
    For k = 1 To UBound(x) - 1
      If LCase(x(k, 1)) = d Then
        c = 0
        Do Until LCase(x(k + 1, 1)) = f Or LCase(x(k + 1, 1)) = d
          k = k + 1
          If Not IsEmpty(x(k, 1)) Then
            ReDim Preserve y(0, c)
            y(0, c) = x(k, 1)
            c = c + 1
          End If
        Loop
        If c Then .Offset(l).Resize(1, c).Value = y
        l = l + 1
      End If
    Next
    With Application: .Calculation = -4105: .EnableEvents = 1: .ScreenUpdating = 1: End With
  End With
End Sub


ℝOGER2327
#7868


Mardi 24 Palotin 142 (Sainte Lumelle, écuyère - fête Suprême Quarte)
24 Floréal An CCXXIII, 6,8689h - valériane
2015-W20-3T16:29:07Z
 
Re : extraire de cellule x à cellule y

petit rappel
extrait de la charte du forum
3 – Le titre de la question doit être clair et comporter explicitement le sujet de la demande.
Cela sous-entend qu’une nouvelle demande fait l’objet d’un nouveau fil.

me suis donc basé sur ton message 😉
 
Re : extraire de cellule x à cellule y

Bonsoir boulbidule, David, Roger, Jean-Marie,

Si la vitesse d'exécution n'a guère d'importance
.

1) Solution par formule matricielle en B2 :

Code:
=REPT(A2;(MAX((A$1:A1="bien")*LIGNE(A$1:A1))>MAX((A$1:A1="ce")*LIGNE(A$1:A1)))*(A2<>"ce"))
2) Solution VBA qui utilise la formule précédente :

Code:
Sub GO()
[B:B].ClearContents
With [A1].CurrentRegion.Offset(, 1)
  .Cells(1) = "Liste"
  If .Rows.Count = 1 Then Exit Sub
  .Cells(2).FormulaArray = "=REPT(A2,(MAX((A$1:A1=""bien"")*ROW(A$1:A1))>MAX((A$1:A1=""ce"")*ROW(A$1:A1)))*(A2<>""ce""))"
  .Cells(2).AutoFill .Offset(1).Resize(.Rows.Count - 1)
  .Value = .Value 'supprime les formules
  .Sort .Cells, xlAscending, Header:=xlYes 'tri
End With
End Sub
Fichiers joints.

Bonne fin de soirée.
 

Pièces jointes

Re : extraire de cellule x à cellule y

Re,

Avant d'aller au lit, comparaison des durées d'exécution des macros sur le fichier du post #5/post #12 :

- David84 => 0,9 milliseconde

- Roger2327 => 35 millisecondes (étonnant)

- job75 => 3,5 millisecondes.

Bonne nuit.
 
Re : extraire de cellule x à cellule y

Bonjour le forum,

Je vous ai fait une frayeur Roger 🙄

J'avais testé précédemment sur 39 lignes en faisant une boucle de 1000 itérations.

Ci-joint le fichier avec 10000 lignes, résultats plus cohérents sur Win 8 - Excel 2013 :

- David84 => 0,40 seconde

- Roger => 0,08 seconde

- job75 => 32 secondes...

Bonne journée.
 

Pièces jointes

- 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
19
Affichages
480
Réponses
17
Affichages
481
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…