Aide VBA excel
Résolu
enark78
-
Farfadet88 Messages postés 6295 Date d'inscription Statut Membre Dernière intervention -
Farfadet88 Messages postés 6295 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
j'ai un projet a faire en VBA mais la je sèche un peu. Je dois faire une macro qui copiera un certain nombre de cellules et ira les coller dans une autre feuille selon le debut de la valeur de la cellule.
Je vais essayer d'être le plus clair possible:
j'ai une feuille dans laquelle chaque ligne (collonne A) commence par eBI suivi d'un nombre, I suivi d'un nombre ou P suivi d'un nombre. Je souhaiterai faire une macro qui copierai tout ce qui commence par eBI dans une feuille et tout ce qui commence pas I dans une autre. Par exemple, si la cellule A1 commence par eBI, la macro doit faire un copier/coller des cellules A1 à H1 vers la première cellule vide de la feuille eBI et la même chose si la cellule A1 (ou A2...) commence par I mais vers la feuille nommée I.
Merci de m'aider et désolé si je n'ai pas été très clair.
j'ai un projet a faire en VBA mais la je sèche un peu. Je dois faire une macro qui copiera un certain nombre de cellules et ira les coller dans une autre feuille selon le debut de la valeur de la cellule.
Je vais essayer d'être le plus clair possible:
j'ai une feuille dans laquelle chaque ligne (collonne A) commence par eBI suivi d'un nombre, I suivi d'un nombre ou P suivi d'un nombre. Je souhaiterai faire une macro qui copierai tout ce qui commence par eBI dans une feuille et tout ce qui commence pas I dans une autre. Par exemple, si la cellule A1 commence par eBI, la macro doit faire un copier/coller des cellules A1 à H1 vers la première cellule vide de la feuille eBI et la même chose si la cellule A1 (ou A2...) commence par I mais vers la feuille nommée I.
Merci de m'aider et désolé si je n'ai pas été très clair.
A voir également:
- Aide VBA excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
15 réponses
Sub Bouton1_QuandClic()
Dim i As Long
For i = 1 To 400 'nombre de ligne à contrôler
If Left(Range("a" & i), 3) = "eBI" Then
Sheets("Feuil2").Range("a65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("a" & i).Value
Sheets("Feuil2").Range("b65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("b" & i).Value
Sheets("Feuil2").Range("c65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("c" & i).Value
Sheets("Feuil2").Range("d65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("d" & i).Value
Sheets("Feuil2").Range("e65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("e" & i).Value
Sheets("Feuil2").Range("f65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("f" & i).Value
Sheets("Feuil2").Range("g65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("g" & i).Value
Sheets("Feuil2").Range("h65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("h" & i).Value
End If
If Left(Range("a" & i), 1) = "I" Then
Sheets("Feuil3").Range("a65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("a" & i).Value
Sheets("Feuil3").Range("b65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("b" & i).Value
Sheets("Feuil3").Range("c65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("c" & i).Value
Sheets("Feuil3").Range("d65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("d" & i).Value
Sheets("Feuil3").Range("e65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("e" & i).Value
Sheets("Feuil3").Range("f65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("f" & i).Value
Sheets("Feuil3").Range("g65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("g" & i).Value
Sheets("Feuil3").Range("h65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("h" & i).Value
End If
Next i
End Sub
Dim i As Long
For i = 1 To 400 'nombre de ligne à contrôler
If Left(Range("a" & i), 3) = "eBI" Then
Sheets("Feuil2").Range("a65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("a" & i).Value
Sheets("Feuil2").Range("b65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("b" & i).Value
Sheets("Feuil2").Range("c65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("c" & i).Value
Sheets("Feuil2").Range("d65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("d" & i).Value
Sheets("Feuil2").Range("e65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("e" & i).Value
Sheets("Feuil2").Range("f65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("f" & i).Value
Sheets("Feuil2").Range("g65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("g" & i).Value
Sheets("Feuil2").Range("h65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("h" & i).Value
End If
If Left(Range("a" & i), 1) = "I" Then
Sheets("Feuil3").Range("a65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("a" & i).Value
Sheets("Feuil3").Range("b65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("b" & i).Value
Sheets("Feuil3").Range("c65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("c" & i).Value
Sheets("Feuil3").Range("d65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("d" & i).Value
Sheets("Feuil3").Range("e65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("e" & i).Value
Sheets("Feuil3").Range("f65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("f" & i).Value
Sheets("Feuil3").Range("g65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("g" & i).Value
Sheets("Feuil3").Range("h65536").End(xlUp).Offset(1, 0) = Sheets("feuil1").Range("h" & i).Value
End If
Next i
End Sub
Change bien les noms Feuil1, Feuil2 et Feuil3 en nom de tes feuilles
J'ai défini la macro pour les lignes 1 a 400 mais tu peux en mettre plus ou moins
J'ai défini la macro pour les lignes 1 a 400 mais tu peux en mettre plus ou moins
J'ai bien remplacé le nom des feuilels mais malheureusement ca ne marche pas. Je n'ai aucun message a l'execution de la macro mais elle ne fait apparemmentrien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bizarre, la macro fonctionnait pourtant sur mon classeur.
As tu possibilité de poster ton classeur sur cijoint.fr?
As tu possibilité de poster ton classeur sur cijoint.fr?
Bon, en voulant te le mettre, je l'ai refait pour ne garder que l'essentiel, seulement ce dont le classeur avait besoin pour ce que je voulait et là, ça a marché. Je me suis donc probablement trompé quelque part en remplacant un nom de feuille ou autre. Je vais regarder ca et te tenir au courant. En tout cas, merci de ton aide
Bon ba moi je ne vois pas de quoi ca peut venir, je sollicite donc encore un peu ton aide.
Le premier c'est mon classeur officiel, celui sur lequel j'effectue mon projet.
L'autre c'est la partie que j'avais refaite exprès pour te la poster, celle qui marche.
http://www.cijoint.fr/cjlink.php?file=cj201002/cij9YaZ4Tp.xls
http://www.cijoint.fr/cjlink.php?file=cj201002/cijoTnjiRe.xls
Le premier c'est mon classeur officiel, celui sur lequel j'effectue mon projet.
L'autre c'est la partie que j'avais refaite exprès pour te la poster, celle qui marche.
http://www.cijoint.fr/cjlink.php?file=cj201002/cij9YaZ4Tp.xls
http://www.cijoint.fr/cjlink.php?file=cj201002/cijoTnjiRe.xls
Je ne comprends pas, tu as du te tromper dans le code
copie cette macro et lance la dans ton classeur officiel
Sub Bouton87_QuandClic()
Dim i As Long
For i = 1 To 400 'nombre de ligne à contrôler
If Left(Range("a" & i), 1) = "I" Then
Sheets("i fermés").Range("a65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("a" & i).Value
Sheets("i fermés").Range("b65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("b" & i).Value
Sheets("i fermés").Range("c65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("c" & i).Value
Sheets("i fermés").Range("d65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("d" & i).Value
Sheets("i fermés").Range("e65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("e" & i).Value
Sheets("i fermés").Range("f65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("f" & i).Value
Sheets("i fermés").Range("g65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("g" & i).Value
Sheets("i fermés").Range("h65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("h" & i).Value
End If
If Left(Range("a" & i), 3) = "eBI" Then
Sheets("eBI fermées").Range("a65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("a" & i).Value
Sheets("eBI fermées").Range("b65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("b" & i).Value
Sheets("eBI fermées").Range("c65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("c" & i).Value
Sheets("eBI fermées").Range("d65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("d" & i).Value
Sheets("eBI fermées").Range("e65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("e" & i).Value
Sheets("eBI fermées").Range("f65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("f" & i).Value
Sheets("eBI fermées").Range("g65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("g" & i).Value
Sheets("eBI fermées").Range("h65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("h" & i).Value
End If
Next i
End Sub
copie cette macro et lance la dans ton classeur officiel
Sub Bouton87_QuandClic()
Dim i As Long
For i = 1 To 400 'nombre de ligne à contrôler
If Left(Range("a" & i), 1) = "I" Then
Sheets("i fermés").Range("a65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("a" & i).Value
Sheets("i fermés").Range("b65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("b" & i).Value
Sheets("i fermés").Range("c65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("c" & i).Value
Sheets("i fermés").Range("d65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("d" & i).Value
Sheets("i fermés").Range("e65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("e" & i).Value
Sheets("i fermés").Range("f65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("f" & i).Value
Sheets("i fermés").Range("g65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("g" & i).Value
Sheets("i fermés").Range("h65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("h" & i).Value
End If
If Left(Range("a" & i), 3) = "eBI" Then
Sheets("eBI fermées").Range("a65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("a" & i).Value
Sheets("eBI fermées").Range("b65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("b" & i).Value
Sheets("eBI fermées").Range("c65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("c" & i).Value
Sheets("eBI fermées").Range("d65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("d" & i).Value
Sheets("eBI fermées").Range("e65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("e" & i).Value
Sheets("eBI fermées").Range("f65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("f" & i).Value
Sheets("eBI fermées").Range("g65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("g" & i).Value
Sheets("eBI fermées").Range("h65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("h" & i).Value
End If
Next i
End Sub
je viens de m'apercevoir que je ne t'ai pas passé la bonne version de mon classeur, du coup tu n'as pas du trouver la macro que tu m'avais donné je pense. Si tu es encore la, le voici
http://www.cijoint.fr/cjlink.php?file=cj201002/cijeEZAt2q.xls
c'est plus ou moins le meme classeur que l'autre que je t'ai donné sauf que celui-ci me sert de test avant de modifier ma version "finale"
http://www.cijoint.fr/cjlink.php?file=cj201002/cijeEZAt2q.xls
c'est plus ou moins le meme classeur que l'autre que je t'ai donné sauf que celui-ci me sert de test avant de modifier ma version "finale"
Et bien je ne vois pas le souci. La macro marche.
Crée un bouton d'action (affichage/barre d'outils/formulaire/ Bouton)
Clique droit sur le bouton que tu crées / Appliquer une macro / Bouton1quand click
Et ensuite quand tu cliques sur le bouton, les lignes se copient comme convenu
Crée un bouton d'action (affichage/barre d'outils/formulaire/ Bouton)
Clique droit sur le bouton que tu crées / Appliquer une macro / Bouton1quand click
Et ensuite quand tu cliques sur le bouton, les lignes se copient comme convenu
J'ai trouvé le soucis, il fallait que je lance la macro en etant sur la feuille que j'ai appelé "full" (celle ou il y à toute la liste), j'ai donc corrigé ca. Par contre j'avoue ne pas vraiment comprendre ton code malgré l'aide de microsoft visual basic. Pourrait tu juste m'expliquer ceci ?
"Sheets("i fermés").Range("a65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("a" & i).Value "
"Sheets("i fermés").Range("a65536").End(xlUp).Offset(1, 0) = Sheets("full").Range("a" & i).Value "
"Sheets("i fermés") onglet "i fermés"
Range("a65536").End(xlUp).Offset(1, 0) dernière case vide de la colonne A en partant la Case A65536
Sheets full onglet "full"
Range("a" &i).value Valeur de la case Ai,i étant défini comme une variable de 1 à 400
A chaque fois, la macro contrôle les valeurs pour i=1 (A1), i=2 (a2), etc etc jusqu'à 400
Autrement dit:
La première case vide de l'onglet "i fermé" dans la colonne A est égale à la case Ai de l'onglet "Full"
Range("a65536").End(xlUp).Offset(1, 0) dernière case vide de la colonne A en partant la Case A65536
Sheets full onglet "full"
Range("a" &i).value Valeur de la case Ai,i étant défini comme une variable de 1 à 400
A chaque fois, la macro contrôle les valeurs pour i=1 (A1), i=2 (a2), etc etc jusqu'à 400
Autrement dit:
La première case vide de l'onglet "i fermé" dans la colonne A est égale à la case Ai de l'onglet "Full"