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 :

Macro VBA Findall - Copier-coller


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Par défaut Macro VBA Findall - Copier-coller
    Bonjour à tous et à toutes,

    Je vous remercie déjà de tous vos conseils précieux en VBA, ils m'ont déjà rendu un Service un nombre incalculable de fois ^^

    Cette fois-ci, j'essaie de créer une macro de recherche, puis copier coller dans un nouvel onglet.
    Je m'explique, j'aimerais pouvoir rechercher dans l'intégralité de mon classeur toutes les cellules commencant par un texte défini dans une Inputbox (par exemple "20180618_"), puis copier-coller la ligne entière dans un nouvel onglet

    J'ai bidouillé un truc comme cela, mais je n'arrive pas à avoir le résultat voulu:


    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
    Private Sub Combobox1_change()
     
    Dim recap As Worksheet
     
    Dim arTemp() As String 'variable tableau pour la fonction Findall
    Dim ValCherchee As String
        ValCherchee = ComboBox1.Value
     
     
    Dim Nom_Feuil As String
    Nom_Feuil = Worksheets.UsedRange
     
    Dim DataColumn  As Integer
        DataColumn = 2                  'Plage de cellules où chercher les données
     
    Dim ma_plage As String
        ma_plage = "B1:B1000"
    '---------------------------------------------------------------
    bFound = FindAll(ValCherchee, Sheets(Nom_Feuil), ma_plage, arTemp())
    '---------------------------------------------------------------
     
    For bFound = 2 To lastRow
        If bFound= true Then
            bFound.EntireRow.Copy recap.Cells(irecap, 1)
     
            irecap = irecap + 1
        End If
     
    Next
     
    End Sub

    Je suis une Quiche, je sais... Merci par Avance !
    Anne-Laure

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Citation Envoyé par annelaure0903 Voir le message
    Cette fois-ci, j'essaie de créer une macro de recherche, puis copier coller dans un nouvel onglet.
    Je m'explique, j'aimerais pouvoir rechercher dans l'intégralité de mon classeur toutes les cellules commencant par un texte défini dans une Inputbox (par exemple "20180618_"), puis copier-coller la ligne entière dans un nouvel onglet
    Bonjour,
    Je te conseille de lire ce tuto sur les filtres avancée: https://philippetulliez.developpez.c...dvancedfilter/
    Avec un critère calculé sur ta colonne B qui vérifie que les premiers caractères sont égaux a la valeur de ton inputbox tu auras le résultat que tu souhaites.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Par défaut
    Merci pour ta réponse, mais je gaLére toujours autant. J'ai modifié mon type de fichier à la base pour me rendre la tâche plus simple.

    Je voudrais que ma macro me parcourt tous les onglets, et si la cellule en A est vide, alors me copier-coller la ligne entière Sous mon nouvel onglet.

    J'ai rebidouillé ce truc, qui me semble plus simple à lire mais qui ne fonctionne toujours pas... j'ai fait une erreur de compilation d'après Excel, mais je ne trouve pas où...:

    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
    Dim Wsheet As Worksheets
    Dim C As Range
    Dim LigneAjout As Integer
     
    Dim Wsheet As Worksheets
    Dim C As Range
    Dim LigneAjout As Integer
     
    Dim WS_Count As Integer
    Dim ws As Integer
     
    WS_Count = ActiveWorkbook.Worksheets.Count
     
    Set C = .Range("A2" & .Rows.Count).End(xlUp).Row
     
     
    If Wsheet.Name <> "SYNTHESE" Then
        For ws = 1 To WS_Count
     
                    If IsEmpty(C) Then
                        LigneAjout = Worksheets("SYNTHESE").Range("A" & Rows.Count).End(xlUp).Offset(1).Row
                        C.EntireRow.Copy Worksheets("SYNTHESE").Range("A" & LigneAjout)
                    End If
     
     
        Next ws
    End If

    Merci beaucoup par Avance !

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Pense a utiliser la balise code(bouton #)c'est plus lisible

    j'ai fait une erreur de compilation d'après Excel, mais je ne trouve pas où
    VBA te surligne la ligne fautive en jaune normalement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim C As Range
     
    Set C = .Range("A2" & .Rows.Count).End(xlUp).Row
    tu affectes un nombre a un range

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Par défaut
    Exact !
    Je suis vraiment une quiche! J'ai corrigé ainsi, mais maintenant c'est mon .Rows.Count dans le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set C = .Range("A2;A" & .Rows.Count).End(xlUp).Row
    qui plante...

    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
    Dim Wsheet As Worksheets
    Dim C As Range
    Dim LigneAjout As Integer
     
    Dim WS_Count As Integer
    Dim ws As Integer
     
    WS_Count = ActiveWorkbook.Worksheets.Count
     
    Set C = .Range("A2;A" & .Rows.Count).End(xlUp).Row
     
     
    If Wsheet.Name <> "SYNTHESE" Then
        For ws = 1 To WS_Count
     
                    If IsEmpty(C) Then
                        LigneAjout = Worksheets("SYNTHESE").Range("A" & Rows.Count).End(xlUp).Offset(1).Row
                        C.EntireRow.Copy Worksheets("SYNTHESE").Range("A" & LigneAjout)
                    End If
     
     
        Next ws
    End If

    Merci beaucoup pour ton Aide et ta réactivité !

  6. #6
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Citation Envoyé par annelaure0903 Voir le message
    Je suis vraiment une quiche!
    Exact !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set C = .Range("A2;A" & .Rows.Count).End(xlUp).Row
    Pourquoi le point devant Range alors que tu n'as pas de bloc With?
    pourquoi le point-virgule ( à la place des deux points ( entre A2 et A?

Discussions similaires

  1. Macro excel VBA (chercher/copier/coller)
    Par mtazi001 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 08/07/2015, 20h29
  2. Réponses: 5
    Dernier message: 22/08/2014, 21h48
  3. [VBA-E] Copier coller sous conditions de couleur
    Par titeZ dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/04/2007, 18h27
  4. [VBA-E] copier /coller sur test cellule
    Par Portsall dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/05/2006, 22h19
  5. [VBA] Ecrire "Copier/Coller"
    Par malingue dans le forum Access
    Réponses: 8
    Dernier message: 26/04/2006, 10h02

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