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 :

Insertion espace vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    homme à tout faire
    Inscrit en
    Février 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : homme à tout faire
    Secteur : Transports

    Informations forums :
    Inscription : Février 2016
    Messages : 7
    Par défaut Insertion espace vba
    Bonjour à vous

    Je me tourne une fois de plus vers vous pour éclairé ma lanterne.
    J'ai bricolé un bout de code pour faire une mise en forme automatique.
    En colonne B, je tape différent texte au format A1234567890 ou N123456123456, d'autres format aussi, mais ceux la ne sont pas si fréquent donc pas la peine d'automatisé, le format voulu est A 123 456 78 90 ou N 123456 123456

    Ca marche bien en colonne B mais pourquoi dans les autre colonne si je fait un collage ont m'envoie en débogage avec erreur d’exécution 13??

    Merci d'avance pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Target.Column = 2 And Len(Target) = 11 Then
     
        Target = Left(Target, 1) & " " & Mid(Target, 2, 3) & " " & Mid(Target, 5, 3) & " " & Mid(Target, 8, 2) & " " & Mid(Target, 10, 2) & " "
     
    Else
     
       If Target.Column = 2 And Len(Target) <> 13 Then Exit Sub
     
       Target = Left(Target, 1) & " " & Mid(Target, 2, 6) & " " & Mid(Target, 7, 6) & " "
    End If
    End Sub

  2. #2
    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,
    Que VEUt DIRE exactement :
    Ca marche bien en colonne B mais pourquoi dans les autre colonne si je fait un collage
    ?
    Qu'entends-tu par "collage" ?
    J'espère que tu n'as pas ajouté carrément une seconde procédure évènementielle WorkSheet_change ! (ce serait totalement insensé ...)
    Explique donc

  3. #3
    Membre du Club
    Homme Profil pro
    homme à tout faire
    Inscrit en
    Février 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : homme à tout faire
    Secteur : Transports

    Informations forums :
    Inscription : Février 2016
    Messages : 7
    Par défaut
    Merci de te penché sur la question

    Si je colle quoi que ce soit dans le tableau en copier coller.
    Si je tape une autre donné par exemple 123 en dehors de la colonne b le résultat sera 1
    voir pièce jointe
    Fichiers attachés Fichiers attachés

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Target=format("N123456123456","@ @@@@@@ @@@@@@")

  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
    Regarde en plus la logique de ce que tu as écrit (lis les commentaires que j'y ai ajoutés)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Target.Column = 2 And Len(Target) = 11 Then '--->> donc si à la fois en colonne 2 avec une donnée de 11 caractères
     
           Target = Left(Target, 1) & " " & Mid(Target, 2, 3) & " " & Mid(Target, 5, 3) & " " & Mid(Target, 8, 2) & " " & Mid(Target, 10, 2) & " "
     
       Else '---> sinon (si donc pas A LA FOIS en colonne 2 et une donnée de 11 caractères) 
     
           If Target.Column = 2 And Len(Target) <> 13 Then Exit Sub '--->> si A LA FOIS en colonne 2 avec une donnée de longueur différente de 13 catactères -->> tu sors
                                                                                         ' --->> jamais vrai si autre colonne --->> et tu ne sors donc pas !
     
          Target = Left(Target, 1) & " " & Mid(Target, 2, 6) & " " & Mid(Target, 7, 6) & " " --->> ben ma foi --->> quelle que soit l'autre colonne et le nombre de caractères, tu n'es pas dans le cas 2 et n'es donc pas sorti -->> et cela s'exécutera donc !
      End If
    End Sub
    Je ne veux pas t'aider plus tant que tu n'auras pas su au moins corriger cette fausse logique (avant même de parler code) !

  6. #6
    Membre du Club
    Homme Profil pro
    homme à tout faire
    Inscrit en
    Février 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : homme à tout faire
    Secteur : Transports

    Informations forums :
    Inscription : Février 2016
    Messages : 7
    Par défaut
    Merci de bien vouloir m’aide à comprendre

    c mieux comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Target.Column = 2 And Len(Target) = 11 Then
     
           Target = Left(Target, 1) & " " & Mid(Target, 2, 3) & " " & Mid(Target, 5, 3) & " " & Mid(Target, 8, 2) & " " & Mid(Target, 10, 2) & " "
     
       Else 
     
           If Target.Column <> 2 or Len(Target) <> 13 Then Exit Sub 
                                                                                         
          Target = Left(Target, 1) & " " & Mid(Target, 2, 6) & " " & Mid(Target, 7, 6) & " "
      End If
    End Sub

  7. #7
    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
    c mieux comme ça
    Change "mieux" par "désespérant".
    Tu as là une carence fondamentale de LOGIQUE (avec ou sans code... C'est la logique elle-même, qui est ici infirme !!!) !
    Réfléchis encore

  8. #8
    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
    Allez --->>
    Ecris-moi cela (les actions à conduire) en langage naturel (sans le moindre code, donc ... juste par des phrases si ... alors ... sinon ...
    Et ce ne sera donc là QUE de la logique, hein ... aucun code !

Discussions similaires

  1. prob insert into vba
    Par croke dans le forum VBA Access
    Réponses: 6
    Dernier message: 19/02/2012, 17h54
  2. INSERT INTO vba
    Par isabelle b dans le forum VBA Access
    Réponses: 21
    Dernier message: 26/06/2008, 22h12
  3. requète INSERT Access VBA
    Par yannick9 dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/07/2007, 15h21
  4. Insert SQL + VBA
    Par Hydex dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/05/2007, 23h22
  5. pb insert en VBA
    Par louisju dans le forum Access
    Réponses: 5
    Dernier message: 15/02/2006, 20h06

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