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 :

Copier Coller Range - PB Type mismatch [XL-2016]


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
    Implementation manager
    Inscrit en
    Mai 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Implementation manager

    Informations forums :
    Inscription : Mai 2018
    Messages : 22
    Par défaut Copier Coller Range - PB Type mismatch
    Bonjour à tous,
    J'ai un problème pour copier des données qui représentent le travail de certaines collaborateurs suivant les jours où ils étaient présents (variable par personne).
    Quel que soit le code en question j'ai le même problème de type mismatch.


    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
    25
    26
    27
    Sub test1()
    
    Dim a, i, j, k As Integer
    a = WorksheetFunction.CountA(Sheets("Raw").Range("A:A"))
    'Compte les lignes pour limiter le nombre de boucles
    For i = 1 To a
        If InStr(1, Sheets("Raw").Cells(i, 1), ",") <> 0 Then
    'Je recherche les lignes, dans la colonne A, dans lesquelles 
    il y a une virgule parce que cela subdivise mes données par personne 
    (le nom est séparé du prénom par une virgule)
            For j = 1 To 25
    'je met une deuxième boucle dans la première qui recherche 
    la seconde virgule pour déterminer le Range des données de chaque personne 
    (qui sont variables)
                If InStr(Sheets("Raw").Cells(i + j, 1), 1, ",") <> 0 Or IsEmpty(Sheets("Raw").Cells(i + j, 1)) = True Then
    'Du coup j'essaie de copier les données dans une nouvelles feuille 
    en les espaçant. Du coup, je pourrais faire toutes mes formules dans cette nouvelle 
    feuille sans utiliser VBA.
                Sheets("Raw").Range(Cells(i, 1), Cells(i + j - 1, 20)).Copy Destination:=Sheets("Sheet2").Range(Cells(k * 50 + 2, 1), Cells(k * 50 + 1 + j, 21))
    'Mais ici j'ai une erreur de type mismatch.
                k = k + 1
                Exit For
                End If
            Next j
        End If
    Next i
    End Sub
    Merci pour votre aide. Par contre pas trop compliqué, je suis pas au point niveau Array et autres joyeusetés.

    NB: j'ai rajouté une image de l'onglet Raw.
    Nom : Capture.JPG
Affichages : 238
Taille : 63,0 Ko

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Applique Sheets("Raw") aussi aux Cells à l'intérieur du Range.
    Idem pour le Sheets("Sheet2") de la destination.

  3. #3
    Membre averti
    Homme Profil pro
    Implementation manager
    Inscrit en
    Mai 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Implementation manager

    Informations forums :
    Inscription : Mai 2018
    Messages : 22
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Raw").Range(Sheets("Raw").Cells(i, 1), Sheets("Raw").Cells(i + j - 1, 20)).Copy Destination:=Sheets("Sheet2").Range(Sheets("Sheet2").Cells(k * 50 + 2, 1), Sheets("Sheet2").Cells(k * 50 + 1 + j, 21))
    Ca n'a rien changé malheureusement.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Supprime le second Cells dans la référence de destination (les deux zone de sont pas de même taille).

  5. #5
    Membre averti
    Homme Profil pro
    Implementation manager
    Inscrit en
    Mai 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Implementation manager

    Informations forums :
    Inscription : Mai 2018
    Messages : 22
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Raw").Range(Sheets("Raw").Cells(i, 1), Sheets("Raw").Cells(i + j - 1, 20)).Copy Destination:=Sheets("Sheet2").Range(Sheets("Sheet2").Cells(k * 50 + 2, 1))
    J'ai toujours unType Mismatch.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Supprimer le second Cells, ça voulait dire aussi supprimer le Range devenu inutile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Raw").Range(Sheets("Raw").Cells(i, 1), Sheets("Raw").Cells(i + j - 1, 20)).Copy Destination:=Sheets("Sheet2").Cells(k * 50 + 2, 1)

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

Discussions similaires

  1. Type Mismatch
    Par escafr dans le forum ASP
    Réponses: 5
    Dernier message: 26/10/2005, 15h45
  2. SQL pb avec is null, type mismatch in expression
    Par debdev dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/10/2005, 17h05
  3. erreur Data type mismatch in criteria expression
    Par bachilbouzouk dans le forum ASP
    Réponses: 3
    Dernier message: 20/04/2005, 11h48
  4. [LG]Problème "Type Mismatch"
    Par Aezar dans le forum Langage
    Réponses: 9
    Dernier message: 25/02/2005, 22h50
  5. [LG]Type mismatch
    Par néo333 dans le forum Langage
    Réponses: 6
    Dernier message: 04/11/2003, 22h13

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