VBA | Si contient alors copie sinon passer au suivant
Résolu
Kirilov
Messages postés
104
Date d'inscription
Statut
Membre
Dernière intervention
-
Kirilov Messages postés 104 Date d'inscription Statut Membre Dernière intervention -
Kirilov Messages postés 104 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je travaille sur un fichier Excel que j'ai besoin de ventiler sur plusieurs feuilles en fonction d'un critère.
J'aimerai passer par une macro qui permette de dire : Si la cell AD1=2 alors copie/colle la ligne 1 sur feuil2 et passer au suivant ET si la Cell AD1=3 alors copie/colle la ligne 1 sur feuil3 etc.
Tout ça pour 4 critères.
Mais je suis un vrai bras cassé en VBA et n'arrive pas à l'écrire.
Autre difficulté possible car je l'ai rencontré parfois lors de copier/coller : une partie des cellules contiennent du texte qui est parfois (souvent) supérieur à 255 caractères et lors de copies/colles ils se retrouvent tronqués.
Merci beaucoup de votre aide !
Cordialement,
Kirilov
Je travaille sur un fichier Excel que j'ai besoin de ventiler sur plusieurs feuilles en fonction d'un critère.
J'aimerai passer par une macro qui permette de dire : Si la cell AD1=2 alors copie/colle la ligne 1 sur feuil2 et passer au suivant ET si la Cell AD1=3 alors copie/colle la ligne 1 sur feuil3 etc.
Tout ça pour 4 critères.
Mais je suis un vrai bras cassé en VBA et n'arrive pas à l'écrire.
Autre difficulté possible car je l'ai rencontré parfois lors de copier/coller : une partie des cellules contiennent du texte qui est parfois (souvent) supérieur à 255 caractères et lors de copies/colles ils se retrouvent tronqués.
Merci beaucoup de votre aide !
Cordialement,
Kirilov
A voir également:
- Vba si valeur cellule alors
- Excel cellule couleur si condition texte - Guide
- Excel compter cellule couleur sans vba - Guide
- Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum MacOS
- Formule excel si cellule non vide alors couleur ✓ - Forum Excel
- Excel si couleur cellule alors ✓ - Forum Excel
5 réponses
Bonjour,
Pour du code VBA, il faut connaitre précisément le contexte, aussi si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, avec les résultats souhaités expliqués clairement, ce serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ (mode d'emploi) et tu mets ici le lien obtenu.
Pour du code VBA, il faut connaitre précisément le contexte, aussi si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, avec les résultats souhaités expliqués clairement, ce serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ (mode d'emploi) et tu mets ici le lien obtenu.
Bonjour,
Vous trouverez la structure du fichier ici : http://www.cjoint.com/c/GJziCkcuipV
Merci de votre aide,
Kirilov
Vous trouverez la structure du fichier ici : http://www.cjoint.com/c/GJziCkcuipV
Merci de votre aide,
Kirilov
Bonjour,
Avec cette macro tu devrais effectuer ta copie.
Si tu la lances plusieurs fois, la copie sera toujours effectuée à la suite.
Avec cette macro tu devrais effectuer ta copie.
Public Sub copier() Dim lig As Long With Sheets("Matrice") For lig = 2 To .Cells(Rows.Count, "AD").End(xlUp).Row If .Cells(lig, "AD") = 1 Or .Cells(lig, "AD") = 2 Then .Range("A" & lig & ":AN" & lig).Copy _ Destination:=Sheets("VAL_1").Cells(Sheets("VAL_1").Cells(Rows.Count, "A").End(xlUp).Row + 1, 1) End If Next lig End With End Sub
Si tu la lances plusieurs fois, la copie sera toujours effectuée à la suite.
Bonjour Gbinforme,
Je viens de tester et cela ne fonctionne pas malheureusement.
La macro fait un copier/coller uniquement du dernier enregistrement qui contient en Cell AD la valeur 1, à l'exception de toutes les autres. Enfin c'est l'impression que cela me donne.
Kirilov
Je viens de tester et cela ne fonctionne pas malheureusement.
La macro fait un copier/coller uniquement du dernier enregistrement qui contient en Cell AD la valeur 1, à l'exception de toutes les autres. Enfin c'est l'impression que cela me donne.
Kirilov
re
c'est parce que ta colonne A est vide essaies ainsi
c'est parce que ta colonne A est vide essaies ainsi
Public Sub copier() Dim lig As Long With Sheets("Matrice") For lig = 2 To .Cells(Rows.Count, "AD").End(xlUp).Row If .Cells(lig, "AD") = 1 Or .Cells(lig, "AD") = 2 Then .Range("A" & lig & ":AN" & lig).Copy _ Destination:=Sheets("VAL_1").Cells(Sheets("VAL_1").Cells(Rows.Count, "AD").End(xlUp).Row + 1, 1) End If Next lig End With End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question