incompatibilité de type

jigagneur

XLDnaute Nouveau
bonjour,

le forum m'apporte beaucoup de solutions. Merci à tous les contributeurs.
Mais là je bloque .
dans la séquence suivante j'ai une erreur 13 à la ligne do while ActiveCell.Value. Je suppose que c'est dû à la valeur qui doit être recopiée car la boucle marche pour les petits montants.
Je ne sais pas comment modifier . Merci par avance

n = 1 'numéro de colonne pour montant de PSAR à copier
range("a3").Select
If Cells(3, n).Value = "" Then
ActiveSheet.Paste
Else
Do While ActiveCell.Value <> "" erreur 13:incompatibilité de type
Selection.Offset(0, 1).Select
Loop
ActiveSheet.Paste
End If
End If
m = m + 1
n = n + 1
 

porcinet82

XLDnaute Barbatruc
Re : incompatibilité de type

Salut,

Je suppose qu'il manque un bout de code dans ce que tu nous proposes puisqu'il y a 2 End If et puis à la fin tu as des n=n+1, mais il n'y a pas de boucle avant.
Est-ce que tu pourrais nous mettre ton code entier afin qu'on voit ou peut se situer l'erreur. Deplus, je pense qu'une adaptation de code pourrait etre enviseagble car comme me l'on dis les sages du forum autrefois, il vaut mieux éviter les Select dans les codes...

@+
 

jigagneur

XLDnaute Nouveau
Re : incompatibilité de type

Voilà le code entier


Sub tri_psar_3400()
'cas ou SATELIT reprend plusieurs PSAR
Application.Goto Sheets("PSAR").range("i7")
'recherche des PSAr non encore intégrés. Test sur présence date intégration
For l = 7 To 22
If (Cells(l, 9).Value <> "" And Cells(l, 10) = "") Then
Cells(l, 1).Copy
m = 1 'numéro de colonne pour copier numéro de PSAR
range("a2").Select
If Cells(2, m).Value = "" Then
ActiveSheet.Paste
Else
Do While ActiveCell.Value <> ""
Selection.Offset(0, 1).Select
Loop
ActiveSheet.Paste
End If
Cells(l, 9).Copy

n = 1 'numéro de colonne pour montant de PSAR à copier
range("a3").Select
If Cells(3, n).Value = "" Then
ActiveSheet.Paste
Else
Do While ActiveCell.Value <> "" :mad: c'est celui ci qui me pose problème
Selection.Offset(0, 1).Select
Loop
ActiveSheet.Paste
End If
End If
m = m + 1
n = n + 1
Next l


Merci de votre aide
 

porcinet82

XLDnaute Barbatruc
Re : incompatibilité de type

re,

Pas sur d'avoir bien modifié (refais serait plus approprié..) ton code :
Code:
Sub tri_psar_3400()
Dim l&
Application.Goto Sheets("PSAR").Range("i7")
For l = 7 To 22
    If (Cells(l, 9).Value <> "" And Cells(l, 10) = "") Then
        Cells(l, 1).Copy
        If Cells(3, 1).Value = "" Then
            Range("a3").PasteSpecial
        Else
            Cells(2, Range("IV2").End(xlToLeft).Column + 1).PasteSpecial
        End If
 
        Cells(l, 9).Copy
        If Cells(3, 1).Value = "" Then
            Range("a3").PasteSpecial
        Else
            Cells(3, Range("IV3").End(xlToLeft).Column + 1).PasteSpecial
        End If
    End If
Next l
End Sub

Si ca ne fonctionne pas comme tu le souhaites, refais signe et je te modifierai ca demain.

@+
 

porcinet82

XLDnaute Barbatruc
Re : incompatibilité de type

Salut,

Et bien je vais essayer de t'expliquer ce petit bout de code alors.
La ligne de code Range("IV2").End(xlToLeft).Column permet de trouver la première cellule non vide de la ligne 2 en partant de la dernière colonne que propose excel, c'est à dire IV (tu rencontreras dans de nombreux code, la ligne Range("A65536").End(Xlup).Row dans des boucles For qui permet de trouver la première ligne non vide en partant du bas du fichier). D'ailleur ces lignes de codes correspondent aux Ctrl + Flèche du clavier.

Donc, je rajoute un +1 afin de coller sur la première cellule non vide...

Voili, voulou,

@+
 

Discussions similaires

Réponses
5
Affichages
304

Membres actuellement en ligne

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22