range() et boucle

  • Initiateur de la discussion gerome1980
  • Date de début
G

gerome1980

Guest
Bonjour,

débutant en VBA, j'ai un problème d''incompatibilité de type' dans la macro suivante, ligne 3:

Dim j As Integer
For j = 1 To 500
If ActiveSheet.Range('A' & j).Value = 1000001 Then
Range('C' & j).Offset(0, 3).Select
Selection.Cut
Rows(j).Select
Selection.Delete Shift:=xlUp
End If

Pourrriez-vous m'aider?

Merci

Jerome
 
V

Vekmort

Guest
Bonjour,

Dans la ligne 3, vous renseignez : 'Range.value' or, si votre colonne 'A' contient des données alphabétiques, il y a incompatibilité de type avec la valeur recherchée 1000001.
Pour modifier votre code, vous pouvez mettre 1000001 entre guillemets ''.

Vekmort B)
 

porcinet82

XLDnaute Barbatruc
Bonjour a tous,

Comme j'étais également en train de regarder le code je me permet de me joindre a vous pour dire qu'effectivement il fonctionne mais également pour dire que je ne comprend pas tres bien les 3 lignes suivantes :
Code:
 Selection.Cut
 Rows(j).Select
 Selection.Delete Shift:=xlUp

Tu coupes une cellule puis tu selectionnes un ligne pour la supprimer, ta cellule coupée ne sert a rien, non ???

@+

Edition : José tu as été plus rapide que moi ;), mais ca me rassure de voir que je hne suis pas le seul a ne pas comprendre le code

Message édité par: porcinet82, à: 20/03/2006 12:26
 
G

gerome1980

Guest
oulah j'étais parti déjeuné, et voilà plein de réponses :)
en effet j'ai utilisé l'enregistreur de macros, et j'essaie de faire une boucle.
Je vous transmets le fichier; ce que je souhaiterais faire c'est couper la ligne jaune et la coller à un endroit, puis supprimer la ligne vide, et faire ceci pour chaque ligne 'Max'. [file name=aaaaaaaaaaaa.zip size=17851]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/aaaaaaaaaaaa.zip[/file]
 

Pièces jointes

  • aaaaaaaaaaaa.zip
    17.4 KB · Affichages: 20

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

C'est ta cellule A1 qui gène car tu as #NOM?

modifies ainsi puisque tu as plusieurs fois l'erreur dans ta colonne

Sub classt()
Dim j As Integer
For j = 1 To 500
   
If Not IsError(ActiveSheet.Range('A' & j)) Then
       
If ActiveSheet.Range('A' & j).Value = 1000001 Then
            Range('C' & j).Offset(0, 3).Select
            Selection.Cut
            Rows(j).Select
            Selection.Delete Shift:=xlUp
       
End If
   
End If
Next j
End Sub

Bon courage
 

Gruick

XLDnaute Accro
Bonjour à tous
juste après ton for j = 1 to 500
tu mets
On Error Resume Next
déjà ça éliminera ton premier problème
Attention, ta macro s'arrête pour les 1000002.

Maintenant, pour ta ligne jaune, précises-nous son rôle, est-elle figée ?
A+
 

Gruick

XLDnaute Accro
Salut JMPS
Je corrobore, j'acquiesce,
Dans le cas présent, les problèmes venaient des titres =------- bien inutiles, et sans aucune importance sur le calcul ultérieur.
J'ai testé avant de répondre, tu penses, pas assez, elle gardait le premier mini de chaque série.
sinon, un truc du genre :

Sub classt()
Dim j As Integer
For j = 1 To 500
If IsNumeric(Range('A' & j)) Then
If ActiveSheet.Range('A' & j).Value = 1000001 Then
Rows(j).Select
Selection.Delete Shift:=xlUp
End If
End If
Next j
End Sub

fera ce que gerome1980 demande.

Je ne me souviens pas avoir utilisé 'on error resume next' pour mes propres réalisations. D'ailleurs, je l'ai découverte récemment.

En revanche, quand je bossais (eh oui, un PSE), j'importais souvent des données issus d'AS400, si je l'avais connue à l'époque, elle m'aurait été bien utile sur certaines ligne bizzaroïdes...qui défiaient tous mes tests.

Tant que ce n'est pas parfait, je ne suis pas satisfait, comme la plupart des XLDiens je suppose.

Bon, c'est l'heure de l'apéro ! Une macro au vin blanc, pour oublier !!!
Mais demain, je serai frais....j'espère.

A+


PS : Ta devise est géniale, donnes moi l'auteur, et si c'est toi, alors chapeau

Message édité par: Gruick, à: 20/03/2006 19:23
 

Gruick

XLDnaute Accro
Bonjour JMPS
Je te rassure, les imports AS400 n'ont plus aucun secret pour moi, mes macros marchent toujours, et je continue, moyennant un resto, à en assurer le SAV.
Bon, je quitte le sujet, car manifestement, notre intervenant ne donne pas de nouvelles, alors....
 
G

gerome1980

Guest
Bonjour tout le monde,

ayant avancé, je suis de retour pour vous demander un peu d'aide, car je suis bloqué à nouveau (avance,bloque,avance,bloque,bloque).
Je joins mon fichier comme hier; ma fonction Ttt ne marche pas et... j'aimerais bien qu'elle marche! :woohoo:
je pense que ça vient de la definition de mes arguments (integer?).

Merci pour votre aide,

jerome
 
G

gerome1980

Guest
ah le fichier etait trop gros [file name=aaaaaaaaaaaa_20060321152401.zip size=27937]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/aaaaaaaaaaaa_20060321152401.zip[/file]
 

Pièces jointes

  • aaaaaaaaaaaa_20060321152401.zip
    27.3 KB · Affichages: 12

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 611
dernier inscrit
sebboes