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 :

VBA-Excel-Pb avec left


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut VBA-Excel-Pb avec left
    Bonjour!
    Je travaille dans un code ou la fonction if left...fonctionne bien si je spécifie le nb de caractères à identifier...voir le code suivant...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (Left(rl.Cells(2), 6) = Left(r2.Cells(3), 6)) Then
    Je voudrais remplacer le chiffre 6 par (len(rl.cells(2) - 2) ce qui donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (Left(rl.Cells(2), (len(rl.cells(2) - 2)) = Left(r2.Cells(3), (len(rl.cells(3) - 2))) Then
    Mais cela ne fonctionne pas...
    Merci à celui qui pourra m'aider

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Dans la deuxième partie de ton égalité, tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Left(r2.Cells(3), (len(rl.cells(3) - 2)))
    Left(r2.Cells(3), (len(rl.cells(3) - 2)))

    Est-ce normal?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    non, effectivement, c etait pas normal...
    J ai cru que j allais passer pour un c.. mais en fait ca ne marche toujours pas en rectifiant ca
    Merci de ton aide

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu as un petit cafouillage dans les parenthèses (en trop juste avant len, trop peu avant le -2

    Ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If (Left(rl.Cells(2), Len(rl.Cells(2)) - 2) = Left(r2.Cells(3), Len(r2.Cells(3)) - 2)) Then
    fonctionne-t'il?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    Ca bug toujours et il met "argument ou appel de procédure incorrect" en message d'erreur mais quand je regarde le fichier, il fait bien ce que je lui dit
    Je te mets le code en entier pour tout voir...
    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
       Sheets("Feuil1").Select
        Dim rw As Range 'Tableau de donnée Source
     Dim rl As Range ' ligne du tableau de donnée
     Dim r2 As Range
     Dim cDest As Range ' Cellule de destination
     
     
     
     Set cDest = Range("H1") ' 1°Cellule destination
     
     
     Set rw = Cells(3, 1).CurrentRegion ' on suppose que le tableau de donnee commence en C1..
     For Each rl In rw.Rows 'parcours les lignes du tableau de donnée source
       Debug.Print "Compare " & rl.Cells(3).Address & " et " & rl.Cells(2).Address
      For Each r2 In rw.Rows
    If (Left(rl.Cells(2), Len(rl.Cells(2)) - 2) = Left(r2.Cells(3), Len(r2.Cells(3)) - 2)) Then
          cDest.Value = r2.Cells(3)  ' Copie contenue colonnes c etD D ( 4°)
          cDest.Offset(0, 1) = r2.Cells(4)
          cDest.Offset(0, 2) = r2.Cells(5)
         Exit For
       End If
      Next
       Set cDest = cDest.Offset(1, 0) 'Passe ligne suivante
     Next
    Merci encore

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je ne comprends pas trop ton code...
    Notamment la ligne
    qui, à mon avis, boucle sur la même ligne que r1...
    Peux-tu expliquer ce que tu souhaites réaliser?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

Discussions similaires

  1. VBA EXCEL : Probleme avec On Error
    Par izalec dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 10h23
  2. [VBA Excel] sauvegarde avec le contenu de la formule
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/07/2006, 16h19
  3. [VBA Excel] Tableau avec données du userform et de formules
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2006, 13h29
  4. [VBA][EXCEL]PB avec la commande WorksheetFunction.VLookup
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/11/2005, 16h41
  5. [VBA-Excel] Plagen avec Cells
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/01/2005, 10h49

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