Problème : Type incompatible (erreur 13)

Problème : Type incompatible (erreur 13) - VB/VBA/VBS - Programmation

Marsh Posté le 01-05-2014 à 22:03:21    

Bonjour, j'essaie de faire un projet VBA et je suis maintenant arrivé à un bugg que je ne suis pas en mesure de corrigé depuis environ 1h30. Voici mon code :
 
 

Code :
  1. Dim ABC As Double
  2. 'Nommer la cellule  "ABC"
  3.     ABC = Range("A7" ).Value
  4. 'Nommer le fichier
  5.     ABCD = ActiveWorkbook.Name
  6. 'Nommer le fichier Classeur1
  7.     Dim xls As Excel.Workbook
  8.     Set xls = GetObject("Classeur1.xls" )
  9. 'Rechercher l'endroit à insérer la ligne
  10.     Dim i As Integer
  11.     Dim k As Integer
  12.    
  13.     k = 1
  14.     For i = 1 To k
  15.         Windows("Classeur1.xls" ).Activate
  16.         If xls.Sheets("feuil1" ).Cells(k + 2, 1).Value < ABC Then
  17.         k = k
  18.         Else: k = k + 1
  19.         End If
  20.     Next i
  21. 'Insérer une ligne
  22.     xls.Sheets("feuil1" ).Cells(k + 3, 1).Select
  23.     xls.Sheets("feuil1" ).Cells(k + 3, 1).Insert Shift:=xlUp
  24.    
  25. 'Copier la ligne
  26.     ABCD.Worksheets("feuil1" ).Rows(7).Copy _
  27.     Destination:=xls.Worksheets("feuil1" ).Rows(k + 3)
  28. End Sub


 
La ligne en rouge est la ligne de mon erreur :  
Type incompatible (erreur 13) : If xls.Sheets("feuil1" ).Cells(k + 2, 1).Value < ABC Then
 
Merci à l'avance pour votre aide.  :hello:


Message édité par benny84 le 02-05-2014 à 14:42:55
Reply

Marsh Posté le 01-05-2014 à 22:03:21   

Reply

Marsh Posté le 02-05-2014 à 09:24:48    

 
           Bonjour, bonjour,
 
           merci de baliser le code avec l'icône dédiée conformément aux règles du forum !
 
           Sinon afin de corriger quoique ce soit vu le bloc de lignes mal conçu (sans compter d'autres erreurs plus bas !),
           il serait plutôt judicieux de présenter clairement et exhaustivement le but recherché …
 

Reply

Marsh Posté le 02-05-2014 à 14:38:49    

Oki, je ne sais pas comment baliser le code. Je ne sais pas ce que ça veut dire.
Je consulte régulièrement le forum, mais j'y écris rarement.
 
Voici mon intention, la cellule A7 comprend un nombre que j'ai appelé ABC. Dès que Cells(k + 2, 1).Value < ABC, je désire copier/coller la ligne en dessous. L'exercice est pour un travail d'étude.
 
J'ai continué de chercher hier et je crois qu'il manque une ligne, mais le code indique tjrs un erreur.
 

Code :
  1. k = 1
  2.     For i = 1 To k
  3.         Windows("Classeur1.xls" ).Activate
  4.         If xls.Sheets("feuil1" ).Cells(k + 2, 1).Value < ABC Then
  5.         k = k
  6.         Else: k = k + 1
  7.         End If
  8.     Next i


 
Merci de m'aider


Message édité par benny84 le 02-05-2014 à 14:41:35
Reply

Marsh Posté le 02-05-2014 à 15:27:07    

 
           Si la cellule testée est en format texte, cela provoque l'erreur en la comparant avec la variable ABC déclarée en Double
 
           Suffit de suivre le code en mode pas à pas via la touche F8 par exemple pour contrôler les valeurs des cellules et variables.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed