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 Excel}Copie de formule d'où je veux


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut {VBA Excel}Copie de formule d'où je veux
    ce code me permet de recopier une formule qui se trouve en E1


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub mise_a_jour_colonne_E()
    '
    ' mise_a_jour_colone_G Macro
    ' Macro enregistrée le 13/08/2007 par GS
    '
     
        Range("E1").Select
        Selection.AutoFill Destination:=Range("E1:E337"), Type:=xlFillDefault
        Range("E1:E337").Select
    End Sub

    mais je voudrais que je puisse selectionner a partir d'ou je veux

    au lieu de forcement commencer a la ligne E1 je commence a la ligne E5 ou E6 selon ou j'ai cliquer

    exemple je clique en I35 ma recopie commence a E35

    et le hic que j'ai c'est comment je recupere le numero de ligne pour remplacer par la cellule active

    tout coup de main serais la bienvenue

    merci


    j'ai tester ce code mais ca ne marche pas



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub mise_a_jour_colonne_E1()
     
    Dim Ligne As Integer
     
     
        Ligne = Selection.Row
        Range("E1").Select
     
        Selection.AutoFill Destination:=Range("E" & _
        Ligne & ":E337"), Type:=xlFillDefault
     
        Range("E1:E337").Select
    End Sub

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    mon 2eme code ne peut pas marcher car je rentre en conflit du fait que je choisis la 1er ligne et de l'autre que je choisis la ligne par la cellule active

    j'ai tente de suprimer
    Range("E1").Select

    mais apres ca ne marche pas car ma formule ce trouve que dans E1 c'est ma cellule d'origine

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu as plusieurs solutions, je t'en propose une.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Plage as variant, NoLigne1, NoLigne2, NoCol1, NoCol2
        NoLigne1 = 5
        NoLigne2 = 337
        NoCol1 = 5
        NoCol2 = 5
        Plage = Range(cells(NoLigne1, NoCol1),Cells(NoLigne2,NoCol2)).address,false,false
        Selection.AutoFill Destination:=Range(Plage), Type:=xlFillDefault
    Avec ça tu devrais pouvoir commencer où tu veux et finir où tu veux.
    Pas testé mais je pense que ça devrait coller
    Sinon, tu dis

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    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
    Sub mise_a_jour_colonne_E1()
    
    Dim Ligne As Integer
    
    
        Dim Plage As Variant, NoLigne1, NoLigne2, NoCol1, NoCol2
        NoLigne1 = Selection.Row
        NoLigne2 = 337
        NoCol1 = 5
        NoCol2 = 5
        Plage = Range(Cells(NoLigne1, NoCol1), Cells(NoLigne2, NoCol2)).Address = False    Selection.AutoFill Destination:=Range(Plage), Type:=xlFillDefault
    End Sub
    j'ai ecris ceci pour commencer d'ou je veux
    mais la ligne en rouge ne marche pas

    "erreur d'incompabilité"

    je l'ais modifier car en ecrivant la tienne mot pour mot je ne pouvais pas activer ma macro pour mauvaise ecriture

    est ce que tu sais d'ou peut venir l'erreur

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Plage = Range(Cells(NoLigne1, NoCol1), Cells(NoLigne2, NoCol2)).Address( False,false)
    Essaie cette ligne

    Edit
    J'ai testé cette dernière "version", c'est ok pour moi.
    Désolé
    A+

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    ca recopie bien la formule mais je dois selectioner la case E1 a chaque fois donc la recopie se fait de E1 a E337 je ne peux pas choisir d'ou j'ai selectionner ma ligne

    voici mon 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
    Sub mise_a_jour_colonne_E1()
     
    Dim Plage As Variant, NoLigne1, NoLigne2, NoCol1, NoCol2
     
     
        NoLigne1 = Selection.Row
        NoLigne2 = 337
        NoCol1 = 5
        NoCol2 = 5
     
        Plage = Range(Cells(NoLigne1, NoCol1), Cells(NoLigne2, NoCol2)).Address(False, False)
     
        Selection.AutoFill Destination:=Range(Plage), Type:=xlFillDefault
     
    End Sub

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Explique ce que tu veux faire exactement. Il est clair que si tu mets
    NoLigne1 = Selection.Row
    et que ta sélection est sur E1, ta plage partira de E1...

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

Discussions similaires

  1. (vba excel) Copie automatique de charts
    Par moicwill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/07/2006, 18h17
  2. [VBA Excel] - Copie Aléatoire de données entre 2 feuilles
    Par ethan64 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/07/2006, 17h34
  3. [VBA Excel] Copie automatique d'une donnée
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/07/2006, 13h21
  4. [VBA][Excel] Copie de feuille a l'identique
    Par le_sonic dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/01/2006, 16h48
  5. [VBA][Excel] Copie écran
    Par KOFJCH dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/12/2005, 15h01

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