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 :

Erreur 13, Type de Codage


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
    Consultant en Business Intelligence
    Inscrit en
    Juin 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2011
    Messages : 28
    Par défaut Erreur 13, Type de Codage
    Bonjour à toutes et à tous,

    Voilà j'ai une erreur de type de codage sur mon code, et je ne vois pas comment je peux le résoudre. Quelqu'un pourrait-il m'aider s'il vous plait?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        For i = 2 To derligne14
            If IsError(RDV.Cells(i, "A").Value) = True Or RDV.Cells(i, "A").Value <> "" Then
                RDV.Cells(i, "N").Value = RDV.Cells(i, "A").Value & "/ 6444"
            End If
        Next i
    Cordialement,

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Si tu as une erreur en une cellule de la colonne A, que veux tu récupérer en colonne N?

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    salut,

    tu sembles confondre les notations Range et Cells.

    Tout est disponible dans l'excellent cours de Bidou
    http://bidou.developpez.com/article/VBA/
    page 143
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Peut-être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 2 To derligne14
            If (not IsError(RDV.Cells(i, 1).Value)) and (RDV.Cells(i, 1).Value <> "") Then
                RDV.Cells(i, 14).Value = RDV.Cells(i, 1).Value & "/ 6444"
            End If
        Next i
    Ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 2 To derligne14
            If Isnumeric(RDV.Cells(i, 1).Value)) Then
                RDV.Cells(i, 14).Value = RDV.Cells(i, 1).Value & "/ 6444"
            End If
        Next i
    COrdialement,

    PGZ

  5. #5
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2011
    Messages : 28
    Par défaut
    En fait dans ma colonne A j'ai 3 types de valeurs:
    - numérique
    -vide
    - N/A

    Et je souhaite faire des concaténation seulement avec des cellules numérique.
    Je ne sais pas si je réponds à vos questions.

    Je crois avoir résolu le problème, j'ai juste modifié légèrement le code. Et cela fonctionne correctement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        For i = 2 To derligne14
            If IsError(RDV.Cells(i, "A").Value) = True Then
                RDV.Cells(i, "N").Value = ""
            Else
                If RDV.Cells(i, "A").Value <> "" Then
                    RDV.Cells(i, "N").Value = RDV.Cells(i, "A").Value & "/ 6444"
                End If
            End If
        Next i
    Toutefois, je ne le trouve pas encore rapide. Je dois l'exécuter sur plus de 6202 données.

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Les données de la colonne A sont des valeur en dure ou issues de formules?


    EDIT

    Bon, une proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Application.ScreenUpdating = False
    With RDV
        On Error Resume Next
        .Range("A2:A" & DerLigne14).SpecialCells(xlCellTypeConstants, 1).Offset(0, 13).FormulaR1C1 = "=RC[-13]&""/6444"""
        'Au cas en colonne A tu as des formules dont le résultat est numérique, utilise plutôt la ligne suivante
        '.Range("A2:A" & DerLigne14).SpecialCells(xlCellTypeFormulas, 1).Offset(0, 13).FormulaR1C1 = "=RC[-13]&""/6444"""
        On Error GoTo 0
        With .Range("N2:N" & DerLigne14)
            .Value = .Value
        End With
    End With

  7. #7
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2011
    Messages : 28
    Par défaut
    Les valeurs dans la colonne A sont le résultat d'une autre formule.

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

Discussions similaires

  1. [VB]erreur de type
    Par amel95140 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/01/2006, 15h51
  2. Réponses: 1
    Dernier message: 12/12/2005, 04h39
  3. [LG] Erreur de type incompatible dans assignment
    Par Tuxico dans le forum Langage
    Réponses: 4
    Dernier message: 03/12/2005, 22h06
  4. erreur Data type mismatch in criteria expression
    Par bachilbouzouk dans le forum ASP
    Réponses: 3
    Dernier message: 20/04/2005, 12h48
  5. [Agents services] Erreur de types imcompatibles
    Par ApollloCrid dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 14/04/2005, 20h47

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