|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 41 ![]() |
Bonjour à tous!
Je vous explique mon blocage: Je copie d'une feuille à une autre des informations (Feuil1 et Feuil2). J'aimerais avant de copier mes données de la Feuil1 à la Feuil2, comparer les nombres des colonnes B. Si le nombre que je souhaite coller existe déja dans la Feuil2, je souhaite remplacer la ligne par la nouvelle (Feuil1). En revanche, si le nombre n'existe pas, j'aimerai l'ajouter mais par ordre croissant (qu'il trouve tout seul sa place au milieu de tous..). Est-ce possible? Merci d'avance pour votre aide Chouki60. |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Bonjour,
Une possibilité serait: - Pour chaque ligne de ta feuille 1 tester si ton nombre de ta colonne B est le même dans la feuille 2. - Si oui, tu remplaces la ligne correspondante dans la feuille 2. Si non, tu la copies à la fin dans la feuille 2 - Et pour finir tu tries les données de la feuille 2 suivant ta colonne B. |
|
|
00
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 41 ![]() |
Bonjour à tous,
Voici le code que j'ai fait ce matin, mais (evidemment) cela ne fonctionne pas.. J'ai une erreur au niveau de la ligne 6 : "Erreur d'exécution '1004': erreur définie par l'application ou par l'objet". Quelqu'un pourrait me dire comment corriger cette erreur? Merci ! Chouki. Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Quelques pistes:
- C'est pas obligatoire en VBA mais c'est quand même mieux de typer ses variables donc tu pourrais déclarer les variables i1, i2, k, kk, z comme des types Long. - Pour trouver la dernière ligne de ta feuille c'est plutôt: Code :
|
||
|
|
00
|
|
|
#5 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 41 ![]() |
Merci beaucoup pour ces conseils ! J'ai donc un programme qui fonctionne concernant le test d'un numéro existant.
J'ai aussi réussi à mettre les données dans l'odre croissant. Par contre, je n'arrive pas à copier les données (si le numéro n'existe pas) à la place de la première ligne vide. Voici ce que j'ai fait : Code :
Une astuce |
||
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Attention à lgLigFinM, il manque '+1' à la fin pour que ça désigne la première ligne vide de ta feuille de destination.
Sinon pour le fait que ça te remplisse ta feuille, c'est probablement que ce code se trouve dans une boucle et que la condition de sortie de la boucle n'est pas bonne. |
|
|
00
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 41 ![]() |
Ok, j'ai modifié la boucle, ça fonctionne mieux !
Mais toujours un petit bug Ce qui ne fonctionne pas : Lorsque deux numéros sont identiques entre la feuille "essai" et la feuille "recopie", je veux remplacer les données de la feuille "recopie" par les données de la feuille "essai". Ceci fonctionne bien cependant, le code que j'ai fait me copie deux fois la ligne à remplacer.. Une idée? Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Qu'entends-tu par "copie 2 fois", que la ligne de la feuille Essai est copiée en double sur 2 lignes consécutives de la feuille Recopie?
Sinon, étant donné que la partie de ton code qui traite le cas où "ton nombre n'existe pas" se trouve en dehors de la boucle, je doute que cela te donne le résultat attendu... |
|
|
00
|
|
|
#9 | |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 41 ![]() |
Citation:
Sinon, malgré que le code soit hors de la boucle, le cas où le nombre n'existe pas fonctionne très bien. |
|
|
|
00
|
|
|
#10 | |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Tu es sûre que c'est la nouvelle ligne qui est copiée 2 fois ou que l'ancienne est conservée (il y aurait donc la nouvelle et l'ancienne).
Parce qu'à priori, je ne vois pas pourquoi ton code aurait ce comportement... Tu peux toujours essayer de ne copier que la valeur pour voir si ça résout le problème: Code :
ws2.Range("B" & kk).Value = z.Value 'et pareil pour les suivantes Citation:
|
|
|
|
00
|
|
|
#11 | |||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 41 ![]() |
Citation:
Citation:
Citation:
En tout merci de prendre le temps pour mon problème ! Une autre idée? |
|||
|
|
00
|
|
|
#12 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Je ne comprends pas pourquoi en tout cas. Si ton fichier ne contient pas de données confidentielles, mets-le en pièce jointe que je puisse jeter un œil à ta macro...
|
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 41 ![]() |
J'ai essayé de mettre en pièce jointe mon document cependant je ne peux pas car "la marque de sécurité est manquante".. c'est à dire?
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com