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 :

Si les les conditions correspondent, la formule est écrite dans une nouvelle colonne [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut Si les les conditions correspondent, la formule est écrite dans une nouvelle colonne
    Bonjour à tous,

    Je sais que mon titre n'est pas très explicite, je vais essayé de faire mieux dans le post. Tout d'abord, voici le tableau:

    Nom : Capture.PNG
Affichages : 136
Taille : 21,7 Ko


    Ce que j'essaye de faire:

    Contrôler dans la colonne A si il y a "*_E*" et écrire dans la colonne D ( dans la cellule de la même ligne) une formule : concatener(A1;":=";C1;";")
    Contrôler dans la colonne A si il y a "*_S*" et écrire dans la colonne D ( dans la cellule de la même ligne) une formule : concatener(C1;":=";A1;";")

    Actuellement , j 'ai un bout de code que bloque à la première ligne, mais je ne comprend pas pourquoi. Si vous avez une meilleur façon de le faire, ou une correction de mon bout de code, ce serait super.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ' Vérification du symbole "_E" dans la colonne A
    If Columns("A").Value = "_E*" Then
               ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-4],"":="",RC[-2],"";"")"
        Range("D1").Select
     
    ' Vérification du symbole "_S" dans la colonne A
    If Columns("A").Value = "_S*" Then
               ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-2],"":="",RC[-4],"";"")"
        Range("D1").Select
     
     
      End If
    Cordialement,

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2013
    Messages : 23
    Par défaut Code a tester/adapter
    Bonsoir r4v3n,

    Tout d'abord, sans même regarder ton code très précisément, je vois qu'il y a deux "If" pour un seul "End If", surement une erreur lorsque t'as copié le code..
    Bref..
    As-tu essayé avec "Option Compare Text"?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Option Compare Text
     
    Sub aaa()
    If Cells(i, 1).Value Like "*_E*" Then
        Cells(i, 4).Formula = "=CONCATENATE(Cells(i,1),"":="",Cells(i,3))"
    End If
     
    If Cells(i, 1).Value Like "*_S*" Then
        Cells(i, 4).Value = Cells(i, 3).Value & ":=" & Cells(i, 1).Value & ";"
    End If
     
    End Sub
    Voici deux manières d’obtenir le résultat. Une fois avec la formule Concatenate (que je maîtrise pas encore) et la deuxième avec nos chers "&"

    En espérant t'aider cdt,

    Victor

  3. #3
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut
    Bonjour victor.dubois,

    Tout d'abord merci d'avoir répondu. Pour le "End If", oui c'est une erreur de copié collé de ma part, il est présent dans le bout de programme réel. Pour ce qui est du "compare text", non je ne connais pas cette méthode, je commence à peine le VBA, j'essaye de faire avec: "Enregistrer une macro", sauf que pour cette partie, vu que j'ai en totalité 3000+ lignes, il arrive pas à gérer les filtres.

    Après avoir essayé ton code et lancé, j'ai ce même problème qui reviens, il me met une erreur de "débogage" à la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(i, 1).Value Like "*_E*" Then
    Je ne comprend pas pourquoi il n'arrive pas à passer cette étape.Sur mon code, c'était pareil il n'arrivait pas à passer l'étape la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Columns("A").Value = "_E*" Then

    Cordialement,

  4. #4
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut
    J'ai fais plusieurs essai et toujours aucune avancé, j'ai enlevé la condition "If" pour qu'il execute directement la tâche mais toujours une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(i, 1).Value Like "_E" Then
    Cordialement,

  5. #5
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Par défaut
    j'y arrive sans afficher de formule avec un truc comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub testlike()
     
    If Cells(i, 1).Value Like "*_E*" Then Cells(i, 4) = Cells(i, 1) & ":=" & Cells(i, 3) & ";"
     
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut
    Alors le problème vient de moi, mais j'ai toujours une erreur de débogage sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(i, 1).Value Like "*_I*" Then

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

Discussions similaires

  1. Condition si un élément est déjà dans une liste
    Par biohazard401 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2015, 01h55
  2. Réponses: 7
    Dernier message: 29/11/2010, 22h52
  3. Réponses: 2
    Dernier message: 28/04/2010, 19h09
  4. Réponses: 2
    Dernier message: 28/08/2006, 16h00
  5. [Conception] Collecter les IP des visiteurs d un site web dans une bdd
    Par dakoyaz dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/04/2006, 19h02

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