Erreur macro de tri et coller
Résolu/Fermé
bassmart
Messages postés
277
Date d'inscription
jeudi 19 février 2015
Statut
Membre
Dernière intervention
30 août 2022
-
22 avril 2015 à 18:51
bassmart Messages postés 277 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 30 août 2022 - 7 mai 2015 à 18:46
bassmart Messages postés 277 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 30 août 2022 - 7 mai 2015 à 18:46
A voir également:
- Erreur macro de tri et coller
- Macro logiciel - Télécharger - Organisation
- Erreur 1004 vba ✓ - Forum VB / VBA
- Macro recorder - Télécharger - Confidentialité
- Erreur 1000 france tv - Forum MacOS
- Dessin a copier coller ✓ - Forum Internet / Réseaux sociaux
1 réponse
bassmart
Messages postés
277
Date d'inscription
jeudi 19 février 2015
Statut
Membre
Dernière intervention
30 août 2022
1
22 avril 2015 à 20:16
22 avril 2015 à 20:16
Petite précision!
Quand je roule la macro pas à pas, je voie qu'il m'ajoute une ligne dans mon entête qui termine normalement à la ligne 7, mais là qui termine à la ligne 8. Et le problème semble venir de la ligne suivante
Et quand je passe un espion sur la valeur de "re'", la réponse est "Nothing". Mon tableau contient une vingtaine de ligne, mais qui sont vide.
Est-ce que le problème peut venir de là?
Merci!
Quand je roule la macro pas à pas, je voie qu'il m'ajoute une ligne dans mon entête qui termine normalement à la ligne 7, mais là qui termine à la ligne 8. Et le problème semble venir de la ligne suivante
Set re = ws.Range(Col & ":" & Col).Find(r.Value, lookat:=xlWhole) 'on recherche le n°de sondage dans la colonne col
If re Is Nothing Then 'si non trouvé
'ajoute une nouvelle ligne avant derniere ligne
ws.Rows(nl).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'derniere ligne + 1
Et quand je passe un espion sur la valeur de "re'", la réponse est "Nothing". Mon tableau contient une vingtaine de ligne, mais qui sont vide.
Est-ce que le problème peut venir de là?
Merci!
23 avril 2015 à 14:46
Pour le "re" égal "nothing", c'est normal parce que ma macro cherche si la valeur à copier se retrouve dans le tableau de destination,donc tout est ok pour ça!
Mon problème provient de la valeur du "nl"! Quand je n'ai rien la valeur est égal à 7 alors que ma première ligne disponible est la ligne 8 qui correspond à mon PL de cette feuille.
Mon problème se situe dans les lignes suivantes de code:
If nl < PL Then nl = PL - 1 For Each r In .Range(.Range("C5"), .Range("C5").End(xlDown)).SpecialCells(xlVisible) ' on parcourt toutes les cellules sélectionnées de la colonne C, (r=cellule en cours) Set re = ws.Range(Col & ":" & Col).Find(r.Value, lookat:=xlWhole) 'on recherche le n°de sondage dans la colonne col If re Is Nothing Then 'si non trouvé 'ajoute une nouvelle ligne avant derniere ligne ws.Rows(nl).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'derniere ligne + 1 ws.Cells(nl, Col) = ws.Cells(nl + 1, Col) ws.Cells(nl + 1, Col) = r.Value ' on met le numéro de sondage en colonne col End If NextElle copie la première valeur sur la première ligne (ligne 8) correctement mais par la suite, il m'ajoute des lignes au dessus de cette valeur donc ligne 7.
Comment régler ce problème?
Merci!
Modifié par bassmart le 1/05/2015 à 18:29
Voici le fichier en question: https://www.cjoint.com/?0EbrH11lSey
Lorsque je modifie la ligne pour . Il m'ajoute une ligne à la bonne place, mais quand il copie les valeurs dans la feuille, il laisse toujours une ligne vide entre la première valeur et l'entête et il ne recopie pas le format (bordures de ligne). Probablement à cause que ma valeur nl revient plus bas dans ces 2 lignes
ws.Cells(nl, Col) = ws.Cells(nl + 1, Col) ws.Cells(nl + 1, Col) = r.ValueJ'espère que quelqu'un peux m'aidé?
7 mai 2015 à 18:46
J'ai garder la ligne tel que modifié au par avant
et J'ai changé les 2 lignes contenant la valeur de "nl":
ws.Cells(nl, Col) = ws.Cells(nl - 1, Col) ws.Cells(nl - 1, Col) = r.Value ' on met le numéro de sondage en colonne col