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 :

Ajout de données d'une Sheet1 vers une sheet2 [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 362
    Par défaut Ajout de données d'une Sheet1 vers une sheet2
    Bonsoir à tous,

    Je vous fourni ci-dessous le code lié à deux commandbutton.

    Ce premier code fonctionne nickel. Automatiquement les emails et noms s'ajoutent les uns derrières les autres dans la Feuil1.

    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
    Private Sub CommandButton1_Click()
     
    Dim NewEmail As String
    Dim NewName As String
     
    NewRecipient = InputBox("Enter new email adress")
    NewName = InputBox("Enter name of the recipient")
     
    If NewRecipient = "" Then Exit Sub
     
       Range("A11").Select
     
       While ActiveCell.Value <> ""
     
            ActiveCell.Offset(1, 0).Select
     
       Wend
     
       ActiveCell.Value = NewRecipient
       ActiveCell.Offset(0, 1).Value = NewName
     
    End Sub
    Quant au code suivant il est sensé faire la même chose que le précédent si ce n'est que je veux que les données entrées s'ajoutent les unes à la suite des autres dans la Feuil2.

    J'ai vérifié dans mon bouquin de VBA et sur le forum je ne comprends pas pourquoi cela ne marche pas. J'ai le message d'erreur suivant: "La méthode Select de la classe Range a échoué"

    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
    Private Sub CommandButton2_Click()
     
    Dim NewEmail2 As String
    Dim NewName2 As String
     
    NewRecipient2 = InputBox("Enter new email adress")
    NewName2 = InputBox("Enter name of the recipient")
     
    If NewRecipient2 = "" Then Exit Sub
     
    Sheets("Feuil2").Select
     
    Range("A11").Select    
     
       While ActiveCell.Value <> ""
     
            ActiveCell.Offset(1, 0).Select
     
       Wend
     
       ActiveCell.Value = NewRecipient2
       ActiveCell.Offset(0, 1).Value = NewName2
     
    End Sub

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour
    et en precisant ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("Feuil2").Range("A11").Select

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Evite les Select et directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton2_Click()
    Dim NewLig As Long
    Dim NewEmail As String, NewName As String
     
    NewRecipient = InputBox("Enter new email adress")
    NewName = InputBox("Enter name of the recipient")
    With Sheets("Feuil2")
       If Trim(NewRecipient) <> "" Then
          NewLig = .Cells(.Rows.Count).End(xlUp).Row + 1
          .Range("A" & NewLig).Value = NewRecipient
          .Range("B" & NewLig).Value = NewName
       End If
    End With
    End Sub
    @helas
    essaies d'exécuter cette ligne à partir de Feuil1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil2").Range("A11").Select

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Si "All" est le nom d'une plage nommée sur la Feuil1, je doute que ça marche sur la Feuil2.

    Si le but est de sélectionner toute la feuille, il faut
    Ceci dit, il n'est pas utile de sélectionner des cellules pour modifier le contenu. mercatog a donné un excellent exemple de code.

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    de première vue, All et A11 (Lire A onze)
    le problème est plutôt du côté de sélectionner une cellule d'une feuille non active.
    Si c'est manuellement est impossible, alors on doute qu'on puisse par macro.


  6. #6
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    J'ai la vue qui baisse

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

Discussions similaires

  1. [VB.Net] Comment copier une DataRow d'une table vers une autre ?
    Par YLF dans le forum Accès aux données
    Réponses: 7
    Dernier message: 06/09/2012, 00h23
  2. Réponses: 1
    Dernier message: 19/10/2011, 13h13
  3. copier une ligne d'une table vers une autre
    Par Adren dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/08/2006, 12h54
  4. copier une partie d'une image vers une autre
    Par gregcat dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 14h39
  5. [VB.NET] Copie d'une table d'une DB vers une autre
    Par SergeF dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/11/2004, 10h54

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