Double Comparaison colonne Suite 2

Résolu
Bonjour à tous,

Je viens une fois de plus demander votre aide pour un petit problème.
Revoici mon problème de comparaison avec mes deux lignes
https://forums.commentcamarche.net/forum/affich-32704270-double-comparaison-colonne-suite

J'ai un problème avec ma comparaison de ma première qui ressemble à T150806-8372

Dans le code, VBA me met une erreur sur la ligne suivant :

.Range("A2").Resize(UBound(T_Out_Extract, 2), UBound(T_Out_Extract, 1)) = Application.Transpose(T_Out_Extract)


Provient de :

   'restitution des données en feuilles "extract apres macro" et "bdd apres macro"
With SheetRestiBdd
.Cells.ClearContents
.Range("A1").Resize(, UBound(Entete_Cols_Bdd, 2)) = Entete_Cols_Bdd
.Range("A2").Resize(UBound(T_Out_Bdd, 2), UBound(T_Out_Bdd, 1)) = Application.Transpose(T_Out_Bdd)
End With
With SheetRestiExtr
.Cells.ClearContents
.Range("A1").Resize(, UBound(Entete_Cols_Extr, 2)) = Entete_Cols_Extr
.Range("A2").Resize(UBound(T_Out_Extract, 2), UBound(T_Out_Extract, 1)) = Application.Transpose(T_Out_Extract)
End With


L'erreur est "Incompatibilité de type", n°13
Est-ce quelqu'un à une petite idée?

Merci d'avance

TintinU2

3 réponses

  1. Bonjour,

    quand vous avez l'erreur, clic sur debugage, passez le curseur souris sur

    UBound(T_Out_Extract, 2)


    de la ligne

    .Range("A2").Resize(UBound(T_Out_Extract, 2), UBound(T_Out_Extract, 1)) = Application.Transpose(T_Out_Extract)


    pour voir si votre tableau a bien des limites
    1. Bonjour f894009,

      Merci pour ta réponse.

      En effet T_Out_Extract à bien une limite. Dans mon cas, elle est à 196
    2. @TintinU2Re,

      Desole, mais y deux limites:

      UBound(T_Out_Extract, 2), UBound(T_Out_Extract, 1)
    3. @f894009J'ai bien une limite pour les deux

      UBound(T_Out_Extract, 2) = 196
      UBound(T_Out_Extract, 1) = 16
    4. @TintinU2Bonjour,

      Il faudrait votre fichier, car je ne peux pas vraiment faire de simulation
    5. Voici un exemple de mon fichier
      Il y a seulement les colonnes B, K, L, M
      Moi je veux juste faire une comparaison avec les colonnes B et M
      http://www.cjoint.com/c/EKskya4ZhFF

      Merci encore pour ton aide

      TintinU2
  2. Bonjour,
    complement d'infos apres tests:
    Application.Transpose

    limites: max lignes 65536 lignes et 255 caracteres par cellules. N'a pas evolue depuis office2003

    je remets le fichier car j'avais oublie d'enlever une ligne pour test
    https://www.cjoint.com/c/EKtgkvOKNkf
    1. Bonjour f894009,

      Je te remercie énormément :)

      Pour bien comprendre ce que tu as fais, tu as rajouter une boucle afin d'éviter
      Application.Transpose
      qui lui ne prends en compte que 255 caractères max par cellules.
    2. @TintinU2Re,

      Oui, car certaines instructions n'ont pas évolué avec Office2007 et plus. Ca ne vient pas forcément a l'idée de suite
    3. @f894009D'accord.

      Merci beaucoup ton aide.

      Bon courage et bonne journée
  3. Re,

    Ben, y a pas d'erreur !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1. En effet je n'ai pas de problème non plus.

      Je teste ligne par ligne et je viens de me rendre compte que c'est la colonne H qui pose problème. Il n'y a que du texte dans cette colonne.
      Je ne comprend pas pourquoi vu que la colonne H ne fait pas partie du code.
    2. Je précise : Sur cette colonne, j'effectue une suppression de caractère avant un certain mot

      C'est-à-dire que je supprime tout le texte qui ce situe avant le mot : "observation"

      Voici mon code :
      Sub Supp_Observation()

      Sheets("Feuil1").Select

      der_ligne_5 = Range("B1").End(xlDown).Row
      'MsgBox der_ligne_5
      ActiveSheet.Range("B1:H" & der_ligne_5).AutoFilter Field:=7, Criteria1:="*observation*"

      Dim Cel As Range, Plage As Range
      Dim Mot As String
      Dim der_ligne_6 As Integer, pre_ligne_5 As Integer

      der_ligne_6 = Range("B1").End(xlDown).Row
      pre_ligne_6 = Range("B1").End(xlUp).Row + 1

      Set Plage = Range("H" & pre_ligne_6 & ":H" & der_ligne_6)
      Mot = "Observation" 'adapter au mot à rechercher et à supprimer
      For Each Cel In Plage
      On Error Resume Next
      Cel = Mid(Cel, InStr(1, Cel, Mot))
      Next Cel

      ActiveSheet.Range("G1:H" & der_ligne_5).AutoFilter Field:=7

      End Sub


      Est-ce que le problème pourrait venir de la?

      Encore merci f894009 pour ton aide
    3. Ou bien, je pense plus pour ce deuxième problème

      Est-ce que le nombre de caractère est limité ?
      Mon plus long texte dans la colonne H fait 1028 caractères (espaces compris)
      Si c'est le cas, je suppose qu'il y a une limite de caractère
    4. @TintinU2Re,

      Vu que je n"ai pas vos donnees, pas facile de comprendre. De plus dans le code de votre precedent post, vous avez ceci
      Sheets("Feuil1").Select
      et dans votre fichier il n'y a pas de "feuil1" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    5. @f894009Merci pour ta remarque
      En effet je n'ai pas de "feuil1"
      Je l'ai renommé par la suite, donc cela ne pose pas de problème dans mon programme actuel.

      Je te joins un fichier avec mon problème. J'ai mis de "x" à la place des mots que j'ai (c'est un peu confidentielle)
      http://www.cjoint.com/c/EKspDjD0NSF