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 :

Suite de nombre à transformer en vecteur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Par défaut Suite de nombre à transformer en vecteur
    Bonjour,

    Débutante en macro excel, je vous faire part de mon souci :

    Je récupère un fichier excel avec dans certaines cellules une liste de nombres séparés par un retour chariot :
    2
    4
    12
    6

    Je dois utiliser cette liste de nombre comme si c'était un vecteur pour pouvoir le multiplier par une autre liste de nombre dans le même format (retour chariot).

    Je pensais créer une macro qui remplace les retours chariot par ", " (2, 4, 12, 6), mais je ne sais pas comment indiquer dans la macro que c'est un vecteur et non un texte.

    Ci dessous mon essai de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro1()
     
    Cells.Replace What:="" & Chr(10) & "", Replacement:=", ", LookAt:=xlPart, SearchOrder:=xlByRows
     
    VecteurA = Array(Range("H8").Value)
     
    End Sub
    Voilà.

    J'espère avoir été un tout petit peu claire, je débute en macro donc il est fort probable que ça paraisse simple ou que je me fourvoie dans une mauvaise direction. N'hésitez pas à me poser plus de questions si nécessaire et merci pour vos réponses!

    cordialement,

    Marie

  2. #2
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Pour remplacer tous les chr(10) par ", "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    VecteurA = Range("H8").Text
    b = InStr(VecteurA, Chr(10))
    While b > 0
     VecteurA = Mid(VecteurA, 1, b - 1) & ", " & Mid(VecteurA, b + 1)
     b = InStr(VecteurA, Chr(10))
    Wend

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par Docmarti Voir le message
    Pour remplacer tous les chr(10) par ", "
    ...
    un simple Replace

  4. #4
    Nouveau candidat au Club
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Par défaut
    En fait j'arrive à transformer le contenu de ma cellule en "2, 4, 12, 6";

    mais si je multiplie une cellule comme celle ci par une autre de même format (par exemple (1,2,1,3), j'ai un message d'erreur alors que je voudrais avoir comme résultat 40 (1*2+2*4+1*12+3*6).

    En tout cas merci pour vos réponses, je continue à me creuser la tête de mon côté aussi.

  5. #5
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par bbil Voir le message
    un simple Replace

    Le Replace ne donne pas exactement la même chose dans le cas présent.

    1,2,3,4
    au lieu de
    1, 2, 3, 4, 5

    Pourquoi donc ?

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par Docmarti Voir le message
    ....
    Pourquoi donc ?
    tu as oublié un espace..

  7. #7
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par bbil Voir le message
    tu as oublié un espace..

    Tu as tout à fait raison. Il y avait un espace que je n'ai pas vu.

Discussions similaires

  1. [Débutant] Trouver des suites de nombres dans un vecteur
    Par Drastalouf dans le forum MATLAB
    Réponses: 1
    Dernier message: 01/06/2010, 22h34
  2. localisation d'un nombre dans un vecteur
    Par jmbonnaz dans le forum MATLAB
    Réponses: 5
    Dernier message: 18/04/2007, 09h29
  3. [Logique] Peux-t-on donner la suite des nombres suivants
    Par Heureux-oli dans le forum Enigmes
    Réponses: 12
    Dernier message: 26/06/2006, 09h55
  4. afficher une suite de nombres dans une string
    Par hysah dans le forum C++
    Réponses: 4
    Dernier message: 27/04/2006, 18h51
  5. Réponses: 8
    Dernier message: 02/12/2005, 18h07

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