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 :

Problème de copie avec un "step" en ActiveX


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
    Auditeur informatique
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Par défaut Problème de copie avec un "step" en ActiveX
    Bonjour à tous,

    Une fois de plus je vais avoir besoin de vos lumières...

    Je cherche à développer un code qui me permettrait, suivant des calculs préalables, de :
    - soit copier l'intégralité de ma base dans un autre onglet (cette partie là fonctionne)
    - soit copier un nombre de ligne défini, mais non continu. D'où l'utilisation d'un pas défini au préalable par le biais d'un step.

    Je ne sais pas si c'est très clair... Je précise que j'utilise un bouton ActiveX, et que le code fonctionnait en formulaire (je suis cependant contraint d'utiliser de l'ActiveX).

    Je vous joins 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Dim nomselect As String
    Dim seuilaj As String
    Dim popqtepas As Integer
    Dim i As Integer
    Dim itselect As Integer, itsupaj As Integer
    Dim derligalea As Integer, endline As Integer, finlign As Integer
     
    nomselect = InputBox("Veuillez renseigner le nom de l'échantillon :", "Nom de l'échantillon")
    If nomselect = "" Then Exit Sub
     
    seuilaj = Sheets("Base de données").Range("O5").Value
    popqtepas = Sheets("Base de données").Range("O15").Value
    itsupaj = Sheets("Base de données").Range("o9").Value
    itselect = Sheets("Base de données").Range("O6").Value
    derligalea = Sheets("Base de données").Range("O16").Value
     
     
        Sheets.Add After:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Name = nomselect
     
     
    If itselect >= itsupaj Then
     
        endline = ActiveWorkbook.ActiveSheet.Range("J65536").End(xlUp).Row
        ActiveSheet.Range(Cells(2, 1), Cells(endline, 10)).Select
        Selection.Copy
        Sheets(nomselect).Select
        ActiveSheet.Range("A56").PasteSpecial
     
    Else
     
    finlign = ActiveSheet.Range(Cells(derligalea, 1), Cells(derligalea, 10)).Row
     
        For i = 2 To finlign Step popqtepas
            ActiveSheet.Range(Cells(i, 1), Cells(i, 10)).Copy
            Sheets(nomselect).Activate
            endline = ActiveSheet.Range("J65536").End(xlUp).Row
            Activesheet.Range(Cells(endline + 1, 1), Cells(endline + 1, 10)).PasteSpecial
            Sheets("Base de données").Select
        Next i
     
    End If
    Mon problème se situe après le Else...
    D'une part ça ne me copie pas la sélection sur mon deuxième onglet, mais sur mon onglet initial (sous ma base), et d'autre part ça ne me copie que la dernière ligne de la sélection...

    Si quelqu'un a une solution..

    Merci à tous !

  2. #2
    Membre expérimenté
    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
    Par défaut
    Salut,

    Regarde ici; inspires-toi en.

    Poste ton nouveau code si ça ne marche pas après.

    A+

  3. #3
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Par défaut
    Bonjour à tous,

    Désolé pour ce retour tardif, les congés sont passés par là...

    Merci Obo pour cette réponse, voici le nouveau code que j'ai pu ressortir (j'affiche la partie intéressante seulement, le reste est inchangé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    finlign = ActiveSheet.Range(Cells(derligalea, 1), Cells(derligalea, 10)).Row
     
    With Sheets(nomselect)
        For i = 2 To finlign Step popqtepas
     
         .Range("A56:J56").Value = Sheets("base de données").Range(Cells(i, 1), Cells(i, 10)).Value
     
     
        Next i
     
    End With
    Désormais mon problème se situe sur le "Range("A56:J56")". En effet, j'avec cette formule, j'ai en A56:J56 la dernière ligne de mon step. Or je souhaiterais qu'ils se copient tous à la suite. J'ai donc essayé ça, mais sans succès (erreur 1004)... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    finlign = ActiveSheet.Range(Cells(derligalea, 1), Cells(derligalea, 10)).Row
    endline2 = Sheets(nomselect).Range("J65536").End(xlUp).Row
     
    With Sheets(nomselect)
        For i = 2 To finlign Step popqtepas
     
         .Range(Cells(endline2 + 1, 1), Cells(endline2 + 1, 10)).Value = Sheets("base de données").Range(Cells(i, 1), Cells(i, 10)).Value
     
     
        Next i
     
    End With

    Si quelqu'un a une idée...

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Ouvre ton aide VBA ) la rubrique Range.copy, méthode, lis et applique

Discussions similaires

  1. [AC-2003] problème de copie avec UPDATE
    Par yieiyiei dans le forum VBA Access
    Réponses: 3
    Dernier message: 31/03/2015, 13h25
  2. Problème de copie avec fstream
    Par Nekkro dans le forum C++
    Réponses: 24
    Dernier message: 11/05/2012, 11h22

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