A voir également:
- Boucle For
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
- Saveaspdf.exe for office 2007 - Télécharger - Bureautique
- Idm for mac - Télécharger - Téléchargement & Transfert
7 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
5 avril 2017 à 22:20
5 avril 2017 à 22:20
Bonjour,
Il y a quelques problèmes :
- tout d'abord la valeur de ligne1 et ligne2
leur valeur est dans ton userform ?
- tu ne peux pas tester ta plage mais seulement les cellules qui la composent
Il y a quelques problèmes :
- tout d'abord la valeur de ligne1 et ligne2
leur valeur est dans ton userform ?
- tu ne peux pas tester ta plage mais seulement les cellules qui la composent
Oui la valeur de ligne1 et ligne2 est récupérée au début de mon code
Pour tester les cellules, je ne sais pas comment m'y prendre...
ligne1 = Retval3.BF1FROM.Value
ligne2 = Retval3.BF1TO.Value
Pour tester les cellules, je ne sais pas comment m'y prendre...
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
5 avril 2017 à 22:54
5 avril 2017 à 22:54
Bonjour,
Je te propose ceci à tester :
Je te propose ceci à tester :
Dim ligne1 As Long Dim ligne2 As Long Dim DLigL As Long Dim cel As Range Dim ShtL As Worksheet ligne1 = Retval3.BF1FROM.Value ligne2 = Retval3.BF1TO.Value Set ShtL = ThisWorkbook.Sheets("Logbook") DLigL = ShtL.Range("B" & Rows.Count).End(xlUp).Row For Each cel In ThisWorkbook.Sheets("Suivi").Range("A3:A59").Cells If cel.Value = "BP1-" & ligne1 Or cel.Value = "BP1-" & ligne2 Then DLigL = DLigL + 1 Rows(cel.Row).Copy ShtL.Rows(DLigL) End If Next cel
Oui, c'est exactement ça !
Merci beaucoup pour votre temps !!
Merci beaucoup pour votre temps !!
Après plusieurs tests, je me suis rendu compte que ça fonctionne seulement pour les cellules contenant BP1-ligne1 et BP1-ligne2.
J'aimerais en fait que la macro copie toutes les lignes entre BP1-ligne1 et BP1-ligne2...
Par exemple si ligne1 = 13 et ligne2 = 16 alors la macro copierait les lignes où les cellules en A contiennent BP1-13, BP1-14, BP1-15 et BP1-16.
Merci de votre aide encore une fois !!!
J'aimerais en fait que la macro copie toutes les lignes entre BP1-ligne1 et BP1-ligne2...
Par exemple si ligne1 = 13 et ligne2 = 16 alors la macro copierait les lignes où les cellules en A contiennent BP1-13, BP1-14, BP1-15 et BP1-16.
Merci de votre aide encore une fois !!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
6 avril 2017 à 18:15
6 avril 2017 à 18:15
Bonjour,
ça fonctionne seulement pour les cellules contenant BP1-ligne1 et BP1-ligne2
Tout à fait exact, je n'avais pas vu la subtilité.
Tu changes ainsi cette ligne :
ça fonctionne seulement pour les cellules contenant BP1-ligne1 et BP1-ligne2
Tout à fait exact, je n'avais pas vu la subtilité.
Tu changes ainsi cette ligne :
If cel.Value >= "BP1-" & ligne1 And cel.Value <= "BP1-" & ligne2 Then
Merci !
Désolé de réouvrir ce sujet, mais puisque mon code est déjà présent il sera plus facile de continuer.
Est-ce possible aussi d'effacer le contenu des lignes qui ont été copiées sauf pour la plage "A3:A59" dans
ThisWorkbook.Sheets("Suivi").Range("A3:A59").Cells
Par exemple, une fois que les lignes sont copiées dans l'onglet LogBook, la macro clearcontents les lignes copiées sauf la premiere cellule de chaque ligne.
Merci beaucoup !!!!!!
Désolé de réouvrir ce sujet, mais puisque mon code est déjà présent il sera plus facile de continuer.
Est-ce possible aussi d'effacer le contenu des lignes qui ont été copiées sauf pour la plage "A3:A59" dans
ThisWorkbook.Sheets("Suivi").Range("A3:A59").Cells
Par exemple, une fois que les lignes sont copiées dans l'onglet LogBook, la macro clearcontents les lignes copiées sauf la premiere cellule de chaque ligne.
Merci beaucoup !!!!!!
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
7 avril 2017 à 18:15
7 avril 2017 à 18:15
Bonjour,
Tu rajoutes cette ligne de code
Tu rajoutes cette ligne de code
Rows(cel.Row).Copy ShtL.Rows(DLigL) Cells(cel.Row, 2).Resize(1, Cells(cel.Row, Columns.Count).End(xlToLeft).Column).ClearContents End If
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
13 avril 2017 à 18:45
13 avril 2017 à 18:45
Bonjour,
En global BP1-2 est bien compris entre BP1-13 et BP1-20 :-)
Il faut comparer en découpage :
Cela devrait résoudre ton cas et les autres je pense.
En global BP1-2 est bien compris entre BP1-13 et BP1-20 :-)
Il faut comparer en découpage :
For Each cel In ThisWorkbook.Sheets("Suivi").Range("A3:A59").Cells If Left(cel.Value, 4) = "BP1-" And (Mid(cel.Value, 5) >= ligne1 And Mid(cel.Value, 5) <= ligne2) Then DLigL = DLigL + 1 Rows(cel.Row).Copy ShtL.Rows(DLigL) Cells(cel.Row, 2).Resize(1, Cells(cel.Row, Columns.Count).End(xlToLeft).Column).ClearContents End If Next cel
Cela devrait résoudre ton cas et les autres je pense.
Bonjour,
Merci de votre aide ! Mon projet avance très bien!
J'ai encore un petit problème,
J'aimerais dans un autre fonction que si par exemple ligne1 = 13 et ligne2 = 20, la macro copie les lignes BP1-13 à BP1-20 et colle sur BP1-13 +1 (donc BP1-14 à 21), efface le contenu de la première ligne (BP1-13) sauf la première colonne...
J'ai modifié ce code puisqu'il ne fonctionnait pas :
remplacé par
Où Q301:Q598 contient les mêmes valeurs que A3:A300...
Merci encore une fois pour votre précieux temps !!
Merci de votre aide ! Mon projet avance très bien!
J'ai encore un petit problème,
J'aimerais dans un autre fonction que si par exemple ligne1 = 13 et ligne2 = 20, la macro copie les lignes BP1-13 à BP1-20 et colle sur BP1-13 +1 (donc BP1-14 à 21), efface le contenu de la première ligne (BP1-13) sauf la première colonne...
J'ai modifié ce code puisqu'il ne fonctionnait pas :
Cells(cel.Row, 2).Resize(1, Cells(cel.Row, Columns.Count).End(xlToLeft).Column).ClearContents
remplacé par
ShtS.Rows(cel.Row).ClearContents
ShtS.Range("Q301:Q598").Copy ShtS.Range("A3:A300")
Où Q301:Q598 contient les mêmes valeurs que A3:A300...
Merci encore une fois pour votre précieux temps !!
Bonjour,
Merci de votre temps, est-ce que vous auriez un petit moment pour voir ce problème svp ? Je n'arrive pas à la solution...
Merci à l'avance.
Merci de votre temps, est-ce que vous auriez un petit moment pour voir ce problème svp ? Je n'arrive pas à la solution...
Merci à l'avance.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 709
8 mai 2017 à 21:25
8 mai 2017 à 21:25
Bonjour,
Je n'arrive pas à la solution...
Comme mon code ne fonctionnait pas soi-disant je ne vois pas comment je pourrais modifier ton code ésotérique car si Q301:Q598 contient les mêmes valeurs que A3:A300... pourquoi faire une copie ?
Je n'arrive pas à la solution...
Comme mon code ne fonctionnait pas soi-disant je ne vois pas comment je pourrais modifier ton code ésotérique car si Q301:Q598 contient les mêmes valeurs que A3:A300... pourquoi faire une copie ?
Je faisais une copie pour palier au fait que je n'arrivais pas à effacer seulement les valeurs de la colonne B à dernière colonne. J'ai donc fait un code qui effaçait toutes les valeurs et j'ai fait une copie de ces données de Q301:Q598 pour les remettre en A3:A300... Je n'ai pas réussi a faire fonctionner le code que vous m'aviez donner...