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 :

Sélectionner, copier et coller selon un format vers une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Japon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2016
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Sélectionner, copier et coller selon un format vers une autre feuille
    Bonjour, je souhaiterais réaliser un petit projet dans le cadre de mon école.

    J'ai une feuille excel avec des dixaines de noms de serveurs (en A), de constructeurs x et y (en B) et deux types d'IP (en C et D). Je souhaiterais obtenir une liste des serveurs du contructeur x tout en les affichant d'une certaine manière sur une nouvelle feuille.

    J'étudie VBA depuis peu et je n'ai réussi qu'à copier toutes les lignes où le constructeur x figure.
    La méthode que j'imagine:
    ①Sélectionner les serveurs du constructeur x en B sur la feuille 1
    ②Copier leur nom en A et IP en D
    ③Les coller sur une nouvelle feuille excel (feuille: test) en suivant ce modèle:
    #Memo1
    nom du serveur1 (récuperer en A)
    IP (récupérer en D)
    #Memo2
    nom du serveur2 (récuperer en A)
    IP (récupérer en D)
    #Memo3
    ...

    Si quelqu'un peut m'aider j'en serais vraiment très reconnaissant.

    Merci, Samuel

    PS: la macro que j'ai utilisé jusqu'ici:

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Sub SearchForString()
     
       Dim LSearchRow As Integer
       Dim LCopyToRow As Integer
     
       On Error GoTo Err_Execute
     
       'Commencer à chercher à partir le la deuxième ligne
       LSearchRow = 2
     
       'Copier les données dans la feuille Test à la deuxième ligne
       LCopyToRow = 2
     
       While Len(Range("A" & CStr(LSearchRow)).Value) > 0
     
          'Si les données dans la colonne B = "constructeurx", Copier la ligne vers feuil2
          If Range("B" & CStr(LSearchRow)).Value = "constructeurx" Then
     
             'Selectionner les lignes à copier dans la feuille Serveurs
             Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
             Selection.Copy
     
             'Coller ligne dans feuil2 à la ligne suivante
             Sheets("feuil2").Select
             Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
             ActiveSheet.Paste
     
             'Bouger le compteur à la ligne suivante
             LCopyToRow = LCopyToRow + 1
     
             'Retour à feuil1 
             Sheets("feuil1").Select
     
          End If
     
          LSearchRow = LSearchRow + 1
     
       Wend
     
       'Selection cellule A3
       Application.CutCopyMode = False
       Range("A3").Select
     
       MsgBox "All matching data has been copied."
     
       Exit Sub
     
    Err_Execute:
       MsgBox "Erreur"
     
    End Sub

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Points : 178
    Points
    178
    Par défaut
    Bonjour,

    Quelque chose comme ça ?

    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
     
    Sub SearchForString_v2()
        Dim Derniere_Ligne As Double, Ligne_actuelle As Double, Ligne_Copie As Double, Ligne As Double
        Dim Feuille_source As String, Feuille_Copie As String
        Dim LSearchRow As Integer, LCopyToRow As Integer
     
        'Gestion des erreurs à faire après les debuggages de base
     
        LSearchRow = 2
        Feuille_source = "feuil1"
     
        LCopyToRow = 2
        Feuille_Copie = "feuil2"
     
        Derniere_Ligne = Sheets(Feuille_source).UsedRange.SpecialCells(xlCellTypeLastCell).Row
     
        For Ligne = LSearchRow To Derniere_Ligne
            If Sheets(Feuille_source).Cells(Ligne, 2).Value = "constructeurx" Then
                Sheets(Feuille_source).Rows(Ligne).Copy Sheets(Feuille_Copie).Rows(LCopyToRow)
                LCopyToRow = LCopyToRow + 1
            End If
        Next Ligne
     
       Sheets(Feuille_source).Range("A3").Select
       MsgBox "All matching data has been copied."
    End Sub

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/09/2016, 18h42
  2. Réponses: 2
    Dernier message: 15/07/2016, 10h30
  3. [XL-2007] Copier ligne saisie par un formulaire vers une autre feuille selon le nomclient
    Par pasterlouis dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/06/2013, 21h36
  4. [XL-2007] Excel 2007 Copier Coller une ligne vers une autre feuille
    Par fcjunic dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/02/2013, 21h54
  5. Sélectionner, copier et coller selon deux variables
    Par lenul78570 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/12/2009, 09h21

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