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 :

Concaténation et ajout de nouvelles cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 71
    Par défaut Concaténation et ajout de nouvelles cellules
    Bonjour tout le monde!

    Je n'arrive pas à trouver une solution pour un problème de concaténation. J'aimerais savoir si dans l'exemple que j'ai joint il est possible à partir de deux colonnes contenant deux variables il possible d'alimenter (je veux dire par là créer de nouvelles cellules) une troisième colonne contenant les valeurs de la variable 1 avec les valeurs de la variable 2?

    Je suis un peu nouveau en VBA et je ne sais pas si c'est possible de créer et ajouter de nouvelles cellules dans une colonne déjà existante?!

    Merci beaucoup à la personne qui pourra me donner des indications!!
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    conformément aux règles de ce forum - il aurait fallu déjà commencer par là ! - nous attendons
    une explication claire & exhaustive ainsi que l’algorithme - la logique - mise en œuvre pour résoudre le problème …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 71
    Par défaut
    Bonjour,

    D'accord mais en fait je ne veux pas me lancer dans quelque chose qui n'est pas possible. Je ne connais pas encore bien les possibilités avec vba. Si c'est kke chose qu'on peut faire alors j'aimerais la ou les fonctions principalesà utiliser.

    Je suis déjà entrain d'essayer de le faire donc au pire je renverrai un message un peu plus tard avec ce que j'aurai essayé.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 71
    Par défaut
    Salut tout le monde,

    Je suis toujours sur la même question il y a un problème sur la ligne de concaténation

    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
    Sub OTK()
     
    Sheets("Feuil1").Activate
    Dim maplage1, maplage3, maplage4 As Range
    Dim c, d As Range
    Dim derligne1, derligne3 As Long
     
    derligne1 = Range("A" & Rows.Count).End(xlUp).Row
    derligne3 = Range("C" & Rows.Count).End(xlUp).Row
     
    Set maplage1 = Range(Cells(2, 1), Cells(derligne1, 1))
    Set maplage3 = Range(Cells(2, 3), Cells(derligne3, 3))
    Set maplage4 = Range("D2")
     
    For Each c In maplage1
    For Each d In maplage3
     
    maplage4.Offset(-1, 0) = c.Value & "_" & d.Value
     
    Next d
    Next c
     
    End Sub
    Le code suivant fonctionne mais il écrit tous les résultats dans la même cellule donc je me retrouve uniquement avec le dernier. Problème au niveau de la fonction offset?

    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
    Sub OTK()
     
    Sheets("Feuil1").Activate
    Dim maplage1, maplage2, maplage3, maplage4 As Range
    Dim c, d As Range
    Dim derligne1, derligne3 As Long
     
    derligne1 = Range("A" & Rows.Count).End(xlUp).Row
    derligne3 = Range("C" & Rows.Count).End(xlUp).Row
     
    Set maplage1 = Range(Cells(2, 1), Cells(derligne1, 1))
    Set maplage3 = Range(Cells(2, 3), Cells(derligne3, 3))
    Set maplage4 = Range("D2")
     
    With maplage4
    For Each c In maplage1
        For Each d In maplage3
     
    Range("D2").Offset(1, 0).Value = c.Value & "_" & d.Value
        Next d
    Next c
     
    End With
    End Sub

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Il n'est quand même pas difficile de comprendre que, dans une boucle ou non,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D2").Offset(1, 0)
    sera TOUJOURS (et pour cause) la cellule D3.
    Il suffit de lire la rubrique Range.Offset de ton aide VBA interne.
    Range(R).offset(x,y) se réfère à la cellule qui se trouve x lignes plus bas et y lignes plus à droite que la cellule R
    Et ce sera ainsi tant que x et/ou y ne varieront pas.
    (et tu ne vois pas comment les faire varier dans ta boucle ? Vraiment ?)

    NB : cette remarque est faite sans préjudice de l'opportunité de tout le reste.
    Tu devrais plutôt commencer par regarder (toujours ton aide interne VBA) ce qu'est la méthode Range.Copy.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 71
    Par défaut
    Re-salut!

    J'ai pas compris le lien avec la fonction range.copy. J'essaye de faire varier les x mais c'est toujours le dernier résultat qui s'affiche dans les cellules et pas les résultats obtenus successivement.

    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
    25
    26
    27
    28
    29
     
    Sub OTK()
     
    Sheets("Feuil1").Activate
    Dim maplage1, maplage3, maplage4 As Range
    Dim c, d As Range
    Dim derligne1, derligne3 As Long
     
    derligne1 = Range("A" & Rows.Count).End(xlUp).Row
    derligne3 = Range("C" & Rows.Count).End(xlUp).Row
     
    Set maplage1 = Range(Cells(2, 1), Cells(derligne1, 1))
    Set maplage3 = Range(Cells(2, 3), Cells(derligne3, 3))
    Set maplage4 = Range("D2")
     
    With maplage4
     
    For Each c In maplage1
        For Each d In maplage3
            For x = 1 To 12
     
            maplage4.Offset(x, 0).Value = c.Value & "_" & d.Value
     
            Next x
        Next d
    Next c
     
    End With
    End Sub

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

Discussions similaires

  1. Ajouter une nouvelle ligne sous la cellule actuellement sélectionnée
    Par agronomia dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/02/2008, 09h50
  2. Ajouter une class CSS a une nouvelle cellule
    Par Arfigado dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/09/2006, 10h08
  3. problème : Ajouter un nouvel enregistrement
    Par rob2-9 dans le forum Access
    Réponses: 2
    Dernier message: 10/08/2006, 17h52
  4. Réponses: 2
    Dernier message: 06/07/2006, 13h09
  5. ajout d'une cellule à un input
    Par zola dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/05/2006, 16h50

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