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 :

Slection.Autofill avec ref relative


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut Slection.Autofill avec ref relative
    Bonjour @ tous

    Revoici la KichE aka Théodore.
    J'ai ici un petit bout de code pour insérer une ligne dans un tableau.
    L'idée est d'aller à la dernière ligne remplie, puis de descendre de 1 ligne puis d'insérer ma ligne là.

    Le truc c'est que j'ai plusieurs cellules avec des formules donc je veux sélectionner la ligne du dessous (celle qui avait les formules et qui a été repoussée) et "tirer les formules".

    Voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ajouter_lignes()
    Range("A25").Select
        Selection.End(xlDown).Select
            ActiveCell.Offset(1, 0).Select
            Selection.EntireRow.Insert
                ActiveCell.Offset(1, 0).Select
                Selection.EntireRow.Select
                    Range(Selection, Selection.EntireRow).Select
                    Selection.AutoFill Destination:=Range("XXX"), Type:=xlFillDefault
                    Range("XXX").Select
        ActiveCell.Select
    End Sub
    Je bloque au niveau du range de destination, je ne sais pas comment écrire ça en ref relative.

    Merci de vos contributions.

    Théodore

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    En ce qui me concerne, votre question n'est pas très claire :

    L'idée est d'aller à la dernière ligne remplie, puis de descendre de 1 ligne puis d'insérer ma ligne là.
    Or, avec votre code, vous sélectionnez la dernière ligne remplie, puis vous sélectionnez la ligne suivante : en principe elle est vide ?

    Alors pourquoi insérer une ligne vide à partir d'une ligne vide et de plus deux fois ?

    Ensuite que voulez-vous faire : copier uniquement les cellules de la dernière ligne contenant des formules ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Par défaut c vré...
    Bonjour

    Je vous remercie pour cette prompte réaction.

    En effet mon explication n'est pas très claire.

    Ce que je veux dire c'est que:
    - les utilisateurs de ce tableaux sont des débutants absolus donc ne savent pas insérer de lignes : j'ai été prié de créer "un bouton" pour ça
    - il y a plein de formules (recherchev, mise en forme conditionnelles) dans les cellules donc je dois faire attention à ce qu'elles soient bien là et correctes
    - j'ai eu l'idée de prendre la ligne du dessous (vide mais avec formule donc) parce que si je autofill la ligne du dessus (dernière ligne remplie, donc) je copie les données

    A la réflexion, peut être qu'il vaut mieux faire un copier > insérer ligne, non ?

    Merci à vous

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Toujours pour le cas où j'ai bien compris, essayez (une solution parmi d'autres) :

    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
    Sub ajouter_lignes()
    Dim Dl As Long, Dc As Integer, C As Integer
     
    Range("A25").Select
        Dl = Range("A65536").End(xlUp).Row
        Dc = Range("A" & Dl).End(xlToRight).Column
        Range(Cells(Dl, 1), Cells(Dl, Dc)).Select
        Selection.Copy
        Range("A" & Dl + 1).Select
        ActiveSheet.Paste
            For C = 1 To Dc
            If Range(Cells(Dl + 1, C), Cells(Dl + 1, C)) <> Formula Then
            Cells(Dl + 1, C).ClearContents
            End If
            Next C
    End Sub
    Dernière modification par Invité ; 23/08/2010 à 10h38.

Discussions similaires

  1. sélection fichier avec boite filedialog en réseau
    Par cbleas dans le forum VBA Access
    Réponses: 6
    Dernier message: 31/10/2006, 14h57
  2. Envoi de mail avec adresse relative
    Par Didier77 dans le forum Access
    Réponses: 3
    Dernier message: 01/09/2006, 11h11
  3. [817] procédure avec REF CURSOR en paramètre
    Par Bourbigot dans le forum Oracle
    Réponses: 8
    Dernier message: 19/01/2006, 10h42
  4. Variante de TUpDown avec incrément réel
    Par Bernard Grosdoy dans le forum Composants VCL
    Réponses: 6
    Dernier message: 20/10/2004, 16h40
  5. [MaskEditBox] Affecter avec un réel
    Par fikou dans le forum Général VBA
    Réponses: 6
    Dernier message: 16/09/2002, 09h28

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