|
Comment écrit-on cette condition en VBA ? J'ai une macro à faire avec Excel, et l'outil d'enregistrement de macros ne me permet pas de faire exactement ce que je veux. Voila : J'ai un doc Excel sur trois feuilles, et je veux que le contenu de la ligne sélectionnée sur la première passe soit sur la seconde, soit sur la troisième, selon le contenu d'une case de la ligne sélectionnée (disons la colonne D, la ligne étant variable).
Par exemple, si je suis sur ma première page, j'ai cliqué une ligne et je veux que si dans la colonne D à cette ligne il y a "T", la ligne est copiée sur la deuxième page. Si sur cette ligne dans la colonne D il y a "P", alors cette fois la macro la copie/colle sur la troisième page.
Comment écrit-on donc cette condition en VBA ?
D'avance merci beaucoup. :-)
|
|
|
![]() |
Comment écrit-on cette condition en VBA ?avec le copier/coller
If Sheets(1).Cells(1, 4) = "T" Then
Sheets(1).Rows("1:1").Copy
Sheets(2).Rows("1:1").Select
ActiveSheet.Paste
ElseIf Sheets(1).Cells(1, 4) = "P" Then
Sheets(1).Rows("1:1").Copy
Sheets(3).Rows("1:1").Select
ActiveSheet.Paste
End If
remplace Copy par Cut si tu veux faire du couper/coller
Si t'as un problème contact moi sur mon mail
Petite précision, si tu veux que la macro se lance automatiquement quand tu cliques sur une ligne, il ne faut pas que tu écrives ta macro dans un module, mais dans l'objet Feuil1 de ton projet VBA.
Tu peux alors choisir dans le menu déroulant en haut à droite à partir de quel événement tu veux que se lance la macro (BeforeRightClick, Activate, SelectionChange,...)
Autre précision, si tu veux mettre la ligne selection en variable, tu n'as qu'à déclarer par exemple un compteur comme ça:
dim iNumLigne as integer
iNumLigne=Selection.Row
ainsi iNumLigne aura comme valeur le numéro de la ligne selectionnée (ou le numéro de ligne de la cellule selectionnée)
donc tu peux mettre if sheets(1).cells(iNumLigne,4)= "T" then
...
Comment écrit-on cette condition en VBA ?Voici un lien,en espérant que cela te serve.
Bonne journée
http://vb.developpez.com/faqvba/
Comment écrit-on cette condition en VBA ?Pour l?exemple:
- Variable = compteur
- A = 2ème compteur (pour ne pas écraser la valeur préalablement écrite)
- Temps = valeur de la cellule que tu veux recopier sur une autre feuille, pris dans cet exemple dans la colonne 1
-------------------------------------------------------
Dim i, a, temp
For i = 1 to 1000
Worksheets(Feuil1).activate
Cells(i,4).select
Temp = Cells (i,1).value (par exemple, ça définit la valeur que tu veux recopier)
If cells (i,4).value = ?T? then
Worksheets(?Feuil2?).activate
Cells(a,1).select
Cells(a,1).value = Temp
a = a +1
End if
If cells (i,4).value = ?P? then
Worksheets(?Feuil3?).activate
Cells(a,1).select
Cells(a,1).value = Temp
a = a +1
End if
Next
-----------------------------------------------------------
Ça devrait le faire :p
Comment écrit-on cette condition en VBA ?voici ce que tu attends, c'est cadeau c'est tout fait comme tu veux :
Sub Macro1()
'exemple pr la colonne d
For x = 1 To 10
Select Case Mid(Range("d" & x), 1, 1) '(x represente ta variable pr chercher dune ligne a une autre)
Rows(x & ":" & x).Select
Selection.Copy
Case "t"
Sheets("Feuil2").Select
Rows(y & ":" & y).Select 'y represente la ligne a laquel tu es arrive sur ta 2eme feuil
ActiveSheet.Paste
y = y + 1
Case "p"
Sheets("Feuil3").Select
Rows(z & ":" & z).Select 'z represente la ligne a laquel tu es arrive sur ta 3eme feuil
ActiveSheet.Paste
z = z + 1
Next x
End Sub
Comment écrit-on cette condition en VBA ?Déjà, il faudrait savoir si tu as déjà des données sur tes feuilles 2 et 3, ensuite si tu veux écraser ces données ou mettre ta nouvelle ligne à la suite...
Si tu veux, envois ton fichier (ou un extrait) par mail, avec le détail exact de ce que tu veux et je te fais le nécessaire.
|
|
|