Copie des lignes contenant une valeur numerique

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

C

camadian

Guest
Bonjour le forum
dans mon fichier excel j'essaye de sélectionner les lignes qui ont une valeur numérique en colonne A puis de les copier dans dans l'onglet plans
si quelqu'un peut m'aider ou m'expliquer

Un grand merci
A+
Camadian
 

Pièces jointes

Re : Copie des lignes contenant une valeur numerique

Bonjour Camdian, bonjour le forum,

peut-être comme ça :
Code:
Private Sub CommandButton2_Click()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (DESTination)
Dim y As Byte 'déclare la variable y (incrément de colonne)
 
'boucle 1 : sur toutes les cellules éditées cel de la colonne A de l'onglet "donnees"
For Each cel In Sheets("donnees").Range("A1:A" & Sheets("donnees").Cells(Application.Rows.Count, 1).End(xlUp).Row)
    If IsNumeric(cel.Value) = True Then 'condition : si la valeur de la cellule est numérique
        Set dest = Sheets("plans").Range("A65536").End(xlUp).Offset(1, 0) 'définit la cellule de destination
        For y = 1 To 4 'boucle 2 : sur 4 colonnes
            dest.Offset(0, y - 1) = Sheets("donnees").Cells(cel.Row, y) 'place en dest la valeur de cel (en décalant)
        Next 'prochaine colonne de la boucle 2
          Range(cel, cel.Offset(0, 3)).ClearContents 'efface le contenu de la ligne de cel
    End If 'fin de la condition
Next 'prochaine cellule de la boucle 2
End Sub
 
Dernière édition:
Re : Copie des lignes contenant une valeur numerique

Bonjour,
Code:
=SI(LIGNES($1:1)<=NB(donnees!$A$1:$A$35);INDEX(donnees!A$1:A$35;PETITE.VALEUR(SI(ESTNUM(donnees!$A$1:$A$35);LIGNE(donnees!A$1:A$35));LIGNES($1:1)));"")
Formule à valider par Ctrl, Maj et entrée et à tirer vers la droite et le bas.
A+
Edit : bonjour Robert
 
Re : Copie des lignes contenant une valeur numerique

Re
Autre possibilité à tester en VBA :
Code:
Sub test()
Dim Ref As Range, Plage As Range, Dest As Range
Application.ScreenUpdating = False
Set Ref = Worksheets("donnees").Range([A1], Range("A" & Rows.Count).End(xlUp))
Set Plage = Worksheets("donnees").[A1].CurrentRegion
Set Dest = Worksheets("Plans").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
j = Dest.Row - 1
    For i = 1 To Plage.Rows.Count
        If IsNumeric(Cells(i, 1)) Then
               Plage.Range(Cells(i, 1), Cells(i, Plage.Columns.Count)).Copy Destination _
               :=Dest.Cells(j, 1)
         j = j + 1
        End If
    Next i
Application.ScreenUpdating = True
End Sub
Peut-être que la boucle sur les colonnes ne s'impose pas et que la copie de la ligne complète à la place nous fait gagner du temps (mais peut-être suis-je à côté de la plaque😕...).
A+
 
Re : Copie des lignes contenant une valeur numerique

Merci David
Je viens de tester ca marche aussi bien
c'est vrai que je cherche juste a copier les lignes
mon fichier ne dépassera jamais plus de 60 lignes donc je ne sais pas si je gagnerai beaucoup de tps
mais ces 2 possibilités vont pouvoir alimenter ma base de connaissance
Encore un grand merci a toi
Camadian
 
- 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

Réponses
2
Affichages
117
Réponses
5
Affichages
700
  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
498
Retour