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 :

[VBA]Problème de copie de ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut [VBA]Problème de copie de ligne
    Bonjour a tous.

    Voila fort longtemps que je n'étais passé parmis vous.

    Me revoila donc, avec des questions assez simple, mais qui me cause beaucoup de problème.

    Alors, je suis actuellement en train de mettre un place un système de cotation de fournisseur à partir d'une base de donnée ici du process "GTI"

    Bon en simple, je génère une page de donnée que je transpose sur excel. La encore, sa va pour moi.

    Par contre, je bloque sur quelque opération des plus simple.
    (Et oui, sa fait plus d'un an que je n'ai pas utilisé vba)

    Donc, j'ai mis en place le code du forunisseur que je veux visualiser
    ensuite et la sa bloque, je veu savoir comment conserver le nom de ma page de donnée, ou du moins, que le programme le prenne en compte (Le nom changeant a chaque nouvelle page généré.

    Après, copier les données sur une page de visualisation.

    (Je sait, c'est facile, mais je ni arrive plus. Je sais faire de balayage, faire des userform, et autres... mais sa.....)

    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
    Sub Cotation_Programme()
     
    'Saisie du code GTI fournisseur
        i = InputBox("Indiquez le code GTI fournisseur", "Code GTI", "")
     
    'Indiquer le nom de la page de donnée
        x = InputBox("Indiquez le nom de la page de donnée", "Nom Page", "")
     
    'Copie les lignes correpondante sur la feuille de visualisation
        derlo = Cells(65536, 3).End(xlUp).Row
     
        Sheets.Add
     
    For p = 1 To derlo
        If Cells(p, 5).Value = i Then
                Rows("p:p").Select
                Selection.Copy
     
    End Sub
    Le programme que je vien de mettre ne fonctionne pas!!, je tiens à le préciser

    Donc, j'aimerais savoir comment:
    _mettre le nom de la page de donnée à l'intérieur de mon programme
    _que la feuille de visualisation que je crée prenne le nom du code fournisseur (information " i ")
    _copie les lignes complètes correspondant a mon fournisseurs sur cette meme page

    Faire le tri dans les données, sa je sais faire, du moins encore faire.


    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Par défaut
    Bonjour.

    En lieu et place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Rows("p:p").Select
    Selection.Copy
    je mettrais
    Qu'en penses-tu ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut
    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 Cotation_Programme()
     
    'Saisie du code GTI fournisseur
        i = InputBox("Indiquez le code GTI fournisseur", "Code GTI", "")
     
    'Indiquer le nom de la page de donnée
        x = InputBox("Indiquez le nom de la page de donnée", "Nom Page", "")
     
    'Copie les lignes correpondante sur la feuille de visualisation
        Dim derlo As Long
        derlo = Cells(65536, 3).End(xlUp).Row
     
    Sheets.Add
    ActiveSheet.Name = i
     
    Sheets(x).Activate
    For p = 1 To derlo
        If Cells(p, 5).Value = i Then
        Else
            Rows(p).EntireRow.Copy
            Sheets(i).Select
            ActiveSheet.Paste
        End If
    Next p
     
    End Sub
    Sa fonctionne, mais j'ai rien qui se copie

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sheets.Add
    ActiveSheet.Name = i
     
    For p = 1 To derlo
    Sheets(x).Activate
        If Cells(p, 5).Value = i Then
            Rows(p).EntireRow.Copy
            Sheets(i).Select
            ActiveSheet.Paste
        End If
        p = p + 1
    Next p
    J'ai résolu le problème de page, du moins, je pense

    par contre, lors de la copie, sa coince
    Il ne copie qu'une seule ligne, alors que je souhaite qu'il me copie l'ensemble de lignes concernés.

    Commen faire pour copier mes lignes a la suite et non pas sur la meme.
    Le système copie, mais écrase la ligne précédente.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Par défaut
    Je pense qu'il serait judicieux de rajouter un compteur de ligne dans ta feuille de destination car si je comprends bien, chaque ligne copiée se retrouve collée au même endroit. Aucun élément n'indique à Excel, où coller les données copiées.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For p = 1 To derlo
    Sheets(x).Activate
        If Cells(p, 5).Value = i Then
            Rows(p).EntireRow.Copy Destination:=Sheets(i).Cells(p, 1)
        End If
        p = p + 1
    Next p
    Là tu colles dans ta feuille i sur la ligne p (la même que celle copiée dans la page x). A toi de décliner suivant tes impératifs.

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

Discussions similaires

  1. [XL-2010] Optimiser VBA insertion et copie de lignes
    Par DeejayGD dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/05/2012, 17h30
  2. [XL-2003] VBA - Problème d'insertion de ligne avec copie de formules
    Par oracle7556 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/06/2010, 15h22
  3. [VBA]Problème ouverture - copie fichers de plusieurs sources
    Par kullervo dans le forum Général VBA
    Réponses: 9
    Dernier message: 27/04/2007, 11h22
  4. [VBA-E]sélec./copie lignes remplies vers feuille
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/01/2006, 15h35
  5. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 17h27

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