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 :

Extraction et copie sur ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Par défaut Extraction et copie sur ligne
    Bonjour à tous,

    J'ai actuellement un souci pour travailler sur les lignes de mon tableau. Je m'explique, j'extrais des données sur ma Feuil5 en colonne A et B. De là je fais une boucle sur ma colonne A pour trouver la valeur qui m'intéresse, lorsque j'ai cette valeur, je copie la valeur de la cellule présente en colonne B et je la colle en Feuil1 mais sur la ligne 5 dans la colonne A. Je souhaite faire un pas de 2 pour me retrouver en C5 du coup et copier la valeur d'une extraction. Mais le problème est que lors du passage dans ce morceau de code j'ai une erreur "Propriété ou méthode non gérée par cet objet". Je place le code si quelqu'un peut m'aider. J'en profite aussi pour vous demander si l'utilisation d'un pas est possible dans le code VBA Excel? Merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Site As Range
     
        Sheets(5).Active
        For Each Site In Range("A1", Range("A65536").End(xlUp))
            If Site = "Variable Serveur" Then
                Site.Offset(0, 1).Copy Destination:=Sheets(1).Range("A5")
            End If
        Next Site

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour azelroth, re le forum,

    Cette ligne me parait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bizarreSheets(5).Active
    ça ne serait pas plutot peux-tu essayer comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Site As Range
     
        with Sheets(5)
        For Each Site In .Range("A1", .Range("A65536").End(xlUp))
            If Site = "Variable Serveur" Then
                Site.Offset(0, 1).Copy Destination:=Sheets(1).Range("A5")
            End If
        Next Site
       end with
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 389
    Par défaut
    Pour faire du pas à pas dans ta procédure appuie sur la touche F8

  4. #4
    Membre averti
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Par défaut
    Bonjour,

    En effet casefayere, déjà je me suis planter dans l'activate et pas active. Lol. J'ai corrigé ça après. Ton code fonctionne bien par rapport au mien. Merci.

    Par contre Lynx, ton code ne fonctionne pas après modification de Feuill5 et Feuill1 en Feuil5 et Feuil1. Mais tu m'as donner le code pour le step c'est parfait merci.

    Je vais essayer de faire un mix des deux codes que vous m'avez donner. Merci à vous deux.

    L'association des deux codes fonctionne à merveille. Mais serait-il possible de me déplacer dans la ligne 5 de ma Feuil1 et de d'insérer d'autres valeurs que je trouve si elle sont différentes? D'où le besoin du pas de 2. En gros tant que je trouve de nouvelles valeurs je les mets en Feuil1 sur la ligne 5 mais avec un décalage de 2 cellules vers la droite.

    Je vais quand même placer le mix des deux codes pour vous montrer, l'association des deux.

    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
         Dim Site As Range
        Dim lFin As Long, iLig As Long
     
        'Dernière ligne
        lFin = 2500
     
        'Classement par site
        For iLig = 1 To lFin Step 2
            With Sheets(5)
                For Each Site In .Range("A1", .Range("A65536").End(xlUp))
                    If Site = "Variable Serveur" Then
                        Site.Offset(0, 1).Copy Destination:=Sheets(1).Range("A5")
                    End If
                Next Site
            End With
        Next iLig

  5. #5
    Membre averti
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Par défaut
    Encore moi, pour info j'ai réussi à aller plus loin dans le code :

    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
     Dim Site As Range
        Dim c As Integer
     
        c = 1
     
        'Classement par site
        Do
            With Sheets(5)
                For Each Site In Range("A1", .Range("A65536").End(xlUp))
                    If Site = "Variable Serveur" Then
                        If Site.Offset(0, 1) = Sheets(1).Cells(5, c) Then
                            Call Copiercoller
                        Else
                            Site.Offset(0, 1).Copy Destination:=Sheets(1).Cells(5, c)
     
                        'Appel de la macro Lecture()
                        'Call Lecture
     
                        'Appel de la macro de suppression des logiciels.
                        'Call Suppression
     
                        End If
                    End If
                Next Site
            End With
            If c < 256 Then
                c = c + 2
            End If
        Loop While c <= 255

  6. #6
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut Allez un coup de pouce
    Voila ce que je te propose avec un pas de deux

    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
     
     
    Sub Parcours()
    Dim lFin As Long, iLig As Long, lCur As Long
     
    Dim xls5 As Worksheet, xls1 As Worksheet
        Set xls5 = ThisWorkbook.Worksheets("Feuill5")
        Set xls1 = ThisWorkbook.Worksheets("Feuill1")
        ' Derniere ligne
        lFin = 30000
        ' Ligne de copie
        lCur = 1
        ' avec un pas de deux
        For iLig = 4 To lFin Step 2
     
            If xls5.Cells(iLig, 1) = "Variable Serveur" Then
                ' copie
                xls1.Cells(lCur, 1) = xls5.Cells(iLig, 2)
                lCur = lCur + 1
            End If
     
        Next
     
    End Sub
    A vos claviers

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur 1004 sur une macro de copie de lignes
    Par MonSavon dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/05/2014, 12h07
  2. [E-07] boucle copy paste sous condition sur ligne particuliere
    Par dec3003 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2009, 17h36
  3. SQL - ORACLE : Extraction Nom Colonnes sur 1 seule ligne
    Par Mimile28 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/09/2007, 15h01
  4. extraction automatique d'une ligne sur excel
    Par LAFORCADE dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/06/2007, 10h40
  5. Recherche titre sur ligne et copie colonne
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 26/07/2006, 15h31

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