incompatibilité type 13 vba

Nashou

XLDnaute Junior
Bonjour,

J'ai ce code qui ne fonctionne pas et je m'arrache les cheveux depuis 2 heures à éplucher le forum et comprendre mon problème...

Private Sub CommandButton1_Click()

Dim cellule As Range

For Each cellule In ThisWorkbook.Worksheets("ESSAI").Range("B1").EntireColumn

If cellule.Value = "PARIS" Then
cellule.EntireRow.Copy
ThisWorkbook.Worksheets("Feuil2").Range("A1").PasteSpecial
End If

Next cellule

End Sub

Le but, c'est de passer en revu chaque ligne dans la colonne "B" et de trouver si la valeur "PARIS" y est affectée. Si c'est le cas, ça copie la ligne entière dans la 1ere cellule de ma feuille courante.

Mon problème est une erreur d'incompatibilité sur cette ligne :

If cellule.Value = "PARIS" Then

Je ne comprends pas ce qui cloche ...

Plz help :(
 

ROGER2327

XLDnaute Barbatruc
Re : incompatibilité type 13 vba

Bonjour Nashou
Essayez :
Code:
[COLOR="DarkSlateGray"][B]Private Sub CommandButton1_Click()

Dim cellule As Range

   For Each cellule In ThisWorkbook.Worksheets("ESSAI").Range("B1").EntireColumn[COLOR="Red"].Cells[/COLOR]
   
      If cellule.Value = "PARIS" Then
         cellule.EntireRow.Copy
         ThisWorkbook.Worksheets("Feuil2").Range("A1").PasteSpecial
      End If
   
   Next cellule

End Sub[/B][/COLOR]
De plus, il ne doit pas y avoir d'espace dans Entir eColumn et Past eSpecial.​
ROGER2327
#3490


28 Floréal An CCXVIII
2010-W20-1T20:30:22Z
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : incompatibilité type 13 vba

Bonsoir


Essayes ceci pour préserver ce qui te reste de cheveux ;)
(méthode employant le filtre automatique en VBA)

Code:
Sub a()
Dim source As Worksheet, desti As Worksheet
Set source = Worksheets("ESSAI"): Set desti = Worksheets("Feuil2")
With source
    .Range(.[B1], .[B65536].End(xlUp)).AutoFilter 1, "PARIS"
    .[_FilterDataBase].SpecialCells(12).EntireRow.Copy desti.[A1]
    Application.CutCopyMode = False
    .AutoFilterMode = False
End With
End Sub

EDITION:bonsoir ROGER2327
 

Nashou

XLDnaute Junior
Re : incompatibilité type 13 vba

Merciiiiiiiiiiiii ROGERRRRRRRRRR2327 !!

Ca fonctionne maintenant !! Youpiiiiiiiii

Bon le truc, c'est que ça me copie la dernière ligne où il y a écrit "PARIS". Ca ne copie pas chaque ligne où PARIS est inscrit.
Y'a plus qu'à chercher une alternative ..

j'essaierai ta macro aussi staple !
 

ROGER2327

XLDnaute Barbatruc
Re : incompatibilité type 13 vba

Re...
Essayez ceci :
Code:
[COLOR="DarkSlateGray"][B]Private Sub CommandButton1_Click()

Dim cellule As Range, i&

   For Each cellule In ThisWorkbook.Worksheets("ESSAI").Range("B1").EntireColumn.Cells
   
      If cellule.Value = "PARIS" Then
         cellule.EntireRow.Copy
         ThisWorkbook.Worksheets("Feuil2").Range("A1").Offset(i, 0).PasteSpecial
         i = i + 1
      End If
   
   Next cellule

End Sub[/B][/COLOR]
ou le code de Staple1600 qui m'a l'air très bien...​
ROGER2327
#3492


28 Floréal An CCXVIII
2010-W20-1T21:55:25Z
 

meryAD

XLDnaute Nouveau
Re : incompatibilité type 13 vba

Bonjour
j'ai un problème l'erreur 13 (incomptabilité de type ):
voila mon macro
Private Declare Function Beep Lib "Kernel32" (ByVal Fq As Long, ByVal Tm As Long) As Long
Sub BeepBeep()
Beep 392, 200
Beep 494, 100
Beep 588, 200
Beep 740, 100
Beep 880, 400
Beep 740, 100
Beep 880, 900
End Sub

Private Sub Worksheet_Calculate()
If Range("H07").Value > 60 Then
Call BeepBeep
MsgBox " TR1: Attention valeur atteinte"
End If
If Range("H09").Value > 50 Then
Call BeepBeep
MsgBox " Valeur seuil atteint "
End If
End Sub

merci pour votre aide
 

Discussions similaires