IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

copier et coller ligne particulère


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2012
    Messages : 50
    Par défaut copier et coller ligne particulère
    Bonjour,


    Mon programme permet de rechercher un mot dans plusieurs feuilles excel.
    Lorsque le mot a été trouvé, je voudrais pouvoir copier la ou les lignes ou apparait ce mot, et coller dans une feuille appelée "Resultats" à la ligne no_ligne_remplissage.

    Merci de votre aide, c'est urgent

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Mon programme permet de rechercher un mot dans plusieurs feuilles excel.
    Mets ici ton code entre #pour pouvoir t'orienter

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2012
    Messages : 50
    Par défaut
    Tout d'abord merci de ton aide. Je dois aller voir mon chef dans pas longtemps du tout ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Private Sub Rechercher_Click()
     
    Dim annee As String
    Dim i As Integer
    Dim j As Integer
    Dim no_ligne_max As Integer
    Dim no_ligne_remplissage As Integer
    Dim mot As String
     
    mot = TextBox1.Value
     
    annee = 2008
     
    no_ligne_remplissage = 2
     
    While annee < 2014
     
        Sheets(annee).Activate
        no_ligne_max = Range("A65536").End(xlUp).Select
     
        For i = 2 To no_ligne_max
            For j = 1 To 11
                If Cells(i, j).Value = mot Then
                  ' copie la ligne
                ' et la colle dans l'onglet résultats à la ligne no_ligne_remplissage
                'incrémenter no_ligne_remplissage = no_ligne_remplissage + 1
                    'sortir de la boucle qui incrémente j de 1 à 11 Endloop
                            End If
            j = j + 1
            Next
        i = i + 1
        Next
     
    annee = annee + 1
    Wend
     
    'fermer la fenetre de recherche
    'activer l'onglets résultats
     
    End Sub

    Voila, merci

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    1. Évites les Select/Activate
    2. Utilise plutôt la méthode Find

    Ci-joint proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Private Sub Rechercher_Click()
    Dim LastLig As Long, NewLig As Long, i As Long
    Dim Annee As Integer
    Dim Mot As String
    Dim c As Range
     
    Mot = TextBox1.Value
    If Mot <> "" Then
        NewLig = 2
        For Annee = 2008 To 2014
            With Worksheets(CStr(Annee))
                LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
                If LastLig >= 2 Then
                    For i = 2 To LastLig
                        Set c = .Range("A" & i & ":K" & i).Find(Mot, LookIn:=xlValues, Lookat:=xlWhole)
                        If Not c Is Nothing Then
                            c.EntireRow.Copy Worksheets("Resultat").Range("A" & NewLig)
                            Set c = Nothing
                            NewLig = NewLig + 1
                        End If
                    Next i
                End If
            End With
        Next Annee
    End If
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2012
    Messages : 50
    Par défaut
    Merci beaucoup l'ami.

    Toutefois, ils me mettent plein de messages d'erreur. Je vais essayer de t'expliquer mieux.

    En fait dans mon fichier excel j'ai 2 useform. Une me permettant de saisir des données qui vont ensuite se placer dans mes différentes feuilles excel nommées "2008" jusqu'à "2013".
    ça je l'ai fait.

    Maintenant je voudrais à partir de l'autre Useform que j'ai crée, pouvoir lorsque je saisi dans la TextBox1 un mot et lorsque j'appui sur un bouton Recherche nommé "Rechercher", que ça cherche dans TOUTES mes feuilles du classeur excel donc "2008" "2009" "2010" "2011" "2012" "2013", ce mot que j'aurais donc tapé dans le TextBox1. Et en fonction du mot que j'aurais tapé, cela va copier la ou les lignes ou apparait ce mot là et que celà copie la ou les lignes dans une autre feuille nommée "Resultats".
    Oui et je rajoute que annee doit me permettre de naviguer entre les différentes feuilles. C'est pourquoi j'ai initialisé annee à 2008 et que j'ai fais un While annee < 2014


    Merci beaucoup

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    ils me mettent plein de messages d'erreur.
    1. Lesquels et sur quelles lignes?
    2. Oui, le code fait ce que tu viens de décrire
    3. Est ce que tu as les feuilles nommées 2008, 2009...2014?

Discussions similaires

  1. [XL-2007] Copier Coller Ligne vers autre feuille de même classeur
    Par pasterlouis dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/06/2013, 09h58
  2. [XL-2003] copier toutes les lignes concernées et les coller dans un autre onglet
    Par spacesheep dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/10/2009, 15h40
  3. copier/coller lignes sous condition colonne vers autre feuille
    Par juniorglobal08 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/05/2009, 17h29
  4. Copier - coller ligne entière sur une autre feuille
    Par s.echeff dans le forum Excel
    Réponses: 1
    Dernier message: 10/04/2009, 17h35
  5. [VBA-E] Copier et coller une ligne entiere
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 30/05/2006, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo