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 :

Inverser le contenu de deux cellules d'une même colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Par défaut Inverser le contenu de deux cellules d'une même colonne
    Bonjour à toutes & tous,

    Dans le cadre d'un de mes projets, je dois mettre en oeuvre un comparatif de doublons entre deux critères.

    Un exemple est troujours plus intéressant :



    Mon but est d'aligner "massivement" App 1 de Colonne B & App 1 de Colonne C, App2 de Colonne B avec App2 de Colonne C etc. Autrement dit, intervertir le contenu de B3 avec B2 sans affecter C3.
    (Le Vert = "match" / Rouge = "no match")

    Après des recherches sur des Forums Anglais & Français je n'ai trouvé que des inversions de Lignes avec des Colonnes.

    N'ayant que peu d'expérience dans le VBA, une ou plusieurs personnes peuvent-elles m'accorder un peu de leur temps pour me présenter un exemple de Macro VBA Excel ?

    NB : Les champs doivent être sur la même ligne pour un visuel plus concrêt des doublons. Les MFC sont déjà toutes présentes, il ne me manque plus que cet alignement.

    Merci bien par avance.
    Bien cordialement,

    EyesNetasq.

  2. #2
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Salut,
    il faut par exemple passer par des variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    a=range("a1").value
    b=range("b1").value
    range("a1").value=b
    range("b1").value=a
    ou avec un tableau
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Par défaut
    Bonjour Oliv-,

    Merci avant tout de ta réponse.
    Je vois bien ce que tes 4 lignes de codes tentent de dire, cependant j'imagine que la Macro nécessite des mots clés tels que le "Switch" ou bien d'enregistrer une des données à intervertir.

    Peux-tu m'éclairer sur comment procéder pour la suite ?

    Merci beaucoup.

    EyesNetasq.

  4. #4
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    c'est bien ce qu'elle fait les 2 premières ligne mémorisent les données
    les 2 suivantes intervertissent les valeurs
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  5. #5
    Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Par défaut
    D'accord,

    Pour une application en Macro j'ai tenté cela ne donne aucun résultat.
    Je dois sans doute très mal éxecuter la chose.

    Je suis désolé, j'ai un niveau proche du néant en Macro & VBA.

    Mon Module représente ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Switch()
    a = Range("a1").Value
    b = Range("b1").Value
    Range("a1").Value = b
    Range("b1").Value = a
    End Sub
    Lorsque j'éxecute la Macro après sélection, rien ne se passe.
    Pourrais-tu m'éclairer d'avantage s'il te plait ?

    Merci par avance.

    EyesNetasq.

  6. #6
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    ton niveau est vraiment très bas je t'invite à l'élever en consultat les articles suivants :

    http://excel.developpez.com/cours/

    et surtout là
    http://excel.developpez.com/cours/?p...#environnement

    Mon code n'agit pas sur la selection mais juste sur a1 et b1

    avec une selection de deux cellules sur la même ligne ca pourrait donner cela
    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
     
    Sub Switch()
        Set Maselection = Selection
        If Maselection.Cells.Count <> 2 Or Maselection.Rows.Count <> 1 Then Exit Sub
     
        If Maselection.Areas.Count > 1 Then
        Montablo = Split(Maselection.Address, ",")
        Else
         Montablo = Split(Maselection.Address, ":")
        End If
     
        a = Range(Montablo(0)).Value
        b = Range(Montablo(1)).Value
     
        Range(Montablo(0)).Value = b
        Range(Montablo(1)).Value = a
    End Sub
    mais si tu ne comprends pas le premier code celui-ci ca doit être du chinois
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

Discussions similaires

  1. créer une macro pour comparer deux cellules d'une même colonne
    Par barbie-9 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/05/2012, 20h28
  2. [Dojo] Editable:false avec les cellules d'une même colonne du composant grid edit
    Par samirsaid dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 21/05/2010, 18h53
  3. deux sommes sur une même colonne
    Par nurdo dans le forum Hibernate
    Réponses: 0
    Dernier message: 29/12/2009, 19h11
  4. filtrer deux valeurs d'une même colonne
    Par esojrehcir dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/05/2009, 13h22
  5. [MySQL] Permutation de deux valeurs dans une même colonne de table
    Par andry.aime dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/01/2009, 14h19

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