copie de bloc sous conditions

  • Initiateur de la discussion Initiateur de la discussion lestan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lestan

XLDnaute Nouveau
Bonjour,

je dois travailler sur un tableau avec différentes colonnes et copier certains bloc sur une autre feuille. Je suis plutot débutant et je n'arrive pas à écrire une macro qui fonctionne.

But de la macro:
Dans la quatrième colonne on a pour certains site une date de validation. Je veux alors garder les blocs des sites qui ne sont pas validés (cellule vide à la place d'une date), dans ce cas je veux copier la ligne et les suivantes jusqu'à ce que la prochaine ligne est une case avec une date dans la colonne 4 (site validé). J'ai essayé de faire la macro suivante mais je ne sais même pas si elle marche car j'ai une erreur de compilation Next sans for (alors qu'il y a un For plus haut???)

Sub Macro12()

Worksheets("feuille1").Select
j = 4
For i = 3 To i = 5000


If Cells(i, 7) = empty Then

Do until Cells(j, 7) > 36000 'seul truc que j'ai trouvé pour faire une condition de trouver une date

j = j + 1
Worksheets(1).Range("A" & i & ":K" & (j - 1)).Copy
Worksheets(2).Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone

Next
j = i + 1



End Sub


Merci d'avance pour votre aide
 
Re : copie de bloc sous conditions

lestan,

C'est normal. Il y a pas mal de mots clés qui manquent. Il manque End if pour terminer la structure itérative if...then et aussi la boucle Do until doit terminer avec le mot clé Loop. Je te conseille de nous envoyer le fichier qui va avec. Sinon la solution sera plus difficile.
 
Dernière édition:
Re : copie de bloc sous conditions

Que signifie :

Do until Cells(j, 7) > 36000

Un Do ne peut être présent sans un Loop (boucle)

Sinon pour savoir si une cellule contient une date, tu peux utiliser :

IsDate(Cells(j,7).value)

Donc si j'ai à peu près compris, ça devrait donner :

Do
j = j + 1
Worksheets(1).Range("A" & i & ":K" & (j - 1)).Copy
Worksheets(2).Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone

Loop Until IsDate(Cells(j,7).value)

Mais je ne suis pas sûr à 100%
 
Re : copie de bloc sous conditions

J'avoue c'est déjà mieux mais comme je suis nul ça marche pas du tout comme je voulais lol. Je vous envoie un exemple de tableau que j'ai à traité
En gros je ne veux copier que les blocs avec une date de validation. Encore merci de m'aider et je vais quand même essayer d'y réfléchier tous seul avant de lire votre solution miracle
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
79
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
503
Réponses
3
Affichages
522
Réponses
10
Affichages
759
Réponses
5
Affichages
331
Retour