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 :

macro couper coller


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
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mai 2015
    Messages : 3
    Par défaut macro couper coller
    Bonjour

    Je suis nouveau sur le forum et débutant en macro.

    Je voudrai savoir comment faire en macro, rechercher, dans la colonne A, les cellules vides
    si vide couper coller la valeur de la cellule B en A
    et si cellule B vide couper coller cellule C en A

    Merci par avance

  2. #2
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 909
    Par défaut
    Bonjour,

    Il y a différentes méthodes :
    - Soit tu fais une boucle qui parcourt chacune de tes lignes (simple et efficace), en utilisant du
    for i = première ligne to dernière ligne
    Condition si pour savoir quelle donnée prendre
    - Soit tu mets une formule de type R1C1 dans une colonne à part, qui reprend ce que tu cherches à faire. Cette formule sera ensuite copier-coller en valeur dans ta colonne A.
    En utilisant une range pour écrire une formule comme ceci : rng.formulaR1C1

    Les deux solutions prennent, grosso modo, 5 à 10 lignes de code chacune, normalement.

    Si tu as du mal avec le VBA, tu as les tutoriels et l'enregistreur de macro sur Excel pour t'aiguiller.

    Cordialement,

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mai 2015
    Messages : 3
    Par défaut
    J'ai trouver ceci, sauf qu'il fait le contraire, il coupe et colle quand il a une valeur en A

    Ou est mon erreur?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
    x = [A65536].End(3).Row
    Set MaPlage = Range("A1:A" & x)
    For Each Cel In MaPlage 'pour toutes les cellules de la plage
        If Cel.Value = "" Then 'si elle est vide alors
        Range("B" & x).Select
        Selection.Cut
        Range("A" & x).Select
        ActiveSheet.Paste
        End If
    Next
    End Sub

  4. #4
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 909
    Par défaut
    Il y a mieux comme code et plus fiable, en fait
    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
    Dim i as long
     
    dim excelWKSheet as worksheet
    set excelwksheet = thisworkbook.sheets("NomSheet")
     
    for i = 1 to excelwksheet.range("A65536").end(xlUp).row
         if excelwksheet.range("A" & i) ="" then
                excelwksheet.range("A" & i) = excelwksheet.range("B" & i)
                if excelwksheet.range("A" & i) = "" then
                      excelwksheet.range("A" & i) = excelwksheet.range("C" & i)
                      excelwksheet.range("C" & i)=""
                else
                       excelwksheet.range("B" & i)= ""
                end if
    next
    C'est algo parmi d'autres.
    Perso, je préférerais avec des tableaux numériques (plus rapide)

    Cordialement,

    Code non testé

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mai 2015
    Messages : 3
    Par défaut
    merci cela fonctionne

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

Discussions similaires

  1. Macro couper Coller
    Par NONOSSONV dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/05/2015, 22h32
  2. Macros couper-coller avec fonction si
    Par ayms75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/09/2014, 18h30
  3. Macro couper coller des lignes
    Par coolmomodu31 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 30/08/2013, 22h04
  4. [XL-2003] Macro Couper/coller selon un critère
    Par khroutchev dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 19/07/2013, 17h14
  5. [XL-2007] Copier/Couper Coller invalidé par macro que je ne sais pas annuler
    Par krreymou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2011, 23h23

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