chan33
Messages postés36Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 5 février 2009
-
27 août 2008 à 21:31
chan33
Messages postés36Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 5 février 2009
-
28 août 2008 à 17:54
Bonjour à tous,
Voici la situation :
J'ai une feuille qui s'appelle "Liste de soumission" et une autre "Liste de projet". Dans la feuille "Liste de soumission" j'ai un bouton à la fin de chaque ligne relié à une macro qui permet de créer un numéro de projet dans la feuille "Liste de projet" quand la soumission est accepté.
La seule chose que je ne sais pas, c'est comment lui dire que lorsqu'on appui sur le bouton, c'est les informations de cette ligne que je veux copier dans la feuille "Liste de projet"
chan33
Messages postés36Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 5 février 2009 27 août 2008 à 21:54
Salut,
Eh bien en fait c'est toujours le même bouton que je copie pendant la création de la nouvelle soumission et qui est rattaché à la macro Soumission accepté (qui créer le numéro de projet et tous les fichiers qui s'y rapporte)
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 27 août 2008 à 21:59
donnes-nous plus d'info sur la ligne a copier(position, nombre de cellule, est ce que le nombre de cellule sera fixe etc) ainsi que la premiere cellule de destination(la colonne) et tout autre information
chan33
Messages postés36Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 5 février 2009 27 août 2008 à 22:06
Il va avoir le nom à copier et la description de la feuille "Liste de soumission" vers la feuille "Liste de projet". Les deux cellules à copier sont celles qui correspondent à la soumission accepté et elle doivent être copier à la suite des projets déjà créer (pour cette dernière, je sais comment m'y prendre).
Les cellules à copier se trouvent toujours dans la colonne B et C
Voilà !
Chantal
Vous n’avez pas trouvé la réponse que vous recherchez ?
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 27 août 2008 à 22:43
A mettre dans le code de la feuille qui contient le bouton et j'insiste sur le fait qu'un seul bouton simplifira la tache.
Comme je ne connais pas la colonne de destination de la feuille liste de projet je suppose que ce sera en colonne A
Private Sub CommandButton1_Click()
Dim LigneACopier As Long, DernierValeur As Long, CellulesSource As String
Dim Reponse As Long
'sur quelle ligne somme nous ?
LigneACopier = ActiveCell.Row
CellulesSource = "B" & LigneACopier & ":C" & "LigneACopier"
'on affiche un message pour confirmation
Reponse = MsgBox("etes-Vous certain(e) de vouloir soumettre la ligne " & LigneACopier & "? ", vbExclamation + vbYesNo)
If Reponse = 7 Then Exit Sub '7 correspond a non. Donc si non on arrete tout
'recherche de la premiere cellule vide a partir de la derniere cellule non vide
DernierValeur = Worksheets("Liste de projet").Column("A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row + 1
'on copie
Worksheets("Liste de projet").Range("A" & DernierValeur & ":B" & DernierValeur).Value = AciveSheet.Range(CellulesSource).Value
End Sub
Comment cela marche ? et bien il suffit de selectionner n'importe quelle cellule de la ligne a copier puis de cliquer sur le bouton
J'ai ecris ce code en direct ici donc je ne l'ai pas testé. Tient moi au courant
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 27 août 2008 à 23:07
thème topic : déplacé de VB.NET vers VBA
ps : un + s'est glissé dans le code par erreur, à la place d'un or. saurez-vous le retrouver?
indice : il n'y en a qu'un
(en effet alors pas non plus besoin de stoquer le résultat)
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
chan33
Messages postés36Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 5 février 2009 28 août 2008 à 15:16
J'ai fait le test et j'ai un petit problème
Lorsqu'il demande la cellule à copier, il est sur la cellule dans la feuille Liste de projet, mais je dois copier les cellules de la feuille Liste de soumission et ce n'est pas toujours la dernière ligne de donnée, il faut copier la ligne de la soumission acceptée.
Voici la macro :
Sub Soumission_acceptée()
'Définition des variables
Dim index, projet
Dim LigneACopier As Long
Dim CellulesSouce As String
Dim Reponse As Long
'Inscription des spécifications du projet
Sheets("Échéanciers").Select
Range("F1").Select
index = ActiveCell.Value
ActiveCell.FormulaR1C1 = index + 1
Range("C" & index - 1).Select
projet = ActiveCell.Value
projet = Right(projet, 4) + 1
projet = "R" & IIf((projet < 1000), "0", vbNullString) & projet
MsgBox "Nouveau projet :" & projet
Range("C" & index).Select
ActiveCell.FormulaR1C1 = projet
'Sur quelle ligne somme nous ?
LigneACopier = ActiveCell.Row
CellulesSource = "B" & LigneACopier & ":C" & "LigneACopier"
'On affiche un message pour confirmation
Réponse = MsgBox("Êtes-vous certain (e) de vouloir soumettre la ligne " & LigneACopier & "?", vbExclamation + vbYesNo)
If Reponse = vbNo Then Exit Sub 'Si non on arrête tout.
'On copie
Worksheets("Liste des projets").Range("B" & index).Value = ActiveSheet.Range(CellulesSource).Value
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 28 août 2008 à 17:13
D'accord avec LIBRE_MAX (voir la partie bleu). Pour le reste j'ai simplifié le code et surtout supprimé tout les select, activecell et autre FormulaR1C1 qui ne servent à rien !
ATENTION !!! tout les point dans le code sont :
O B L I G A T O I R !
Sub Soumission_acceptée() 'Définition des variables <--------- evite d'utiliser les characteres accentués dans du code donc prefere : Soumission_acceptee
Dim index, projet
Dim LigneACopier As Long
Dim CellulesSouce As String
Dim Reponse As Long
'Inscription des spécifications du projet
With Sheets("Échéanciers")
index = .Range("F1").Value
projet = Right(.Range("C" & index).Value, 4) + 1
projet = "R" & IIf((Clng(projet) < 1000), "0", vbNullString) & projet
.Range("C" & index).Value = projet
.Range("F1").Value = .Range("F1").Value +1
End With
MsgBox "Nouveau projet :" & projet
'Sur quelle ligne somme nous ?
LigneACopier = ActiveCell.Row
CellulesSource = "B" & LigneACopier & ":C" & "LigneACopier"
'On affiche un message pour confirmation
Réponse = MsgBox("Êtes-vous certain (e) de vouloir soumettre la ligne "
& LigneACopier & "?", vbExclamation + vbYesNo)
If Reponse = vbNo Then Exit Sub 'Si non on arrête tout.
'On copie
Worksheets("Liste des projets").Range("B" & index).Value = ActiveSheet.Range(CellulesSource).Value
End Sub
Si non je n'ai pas completement compris le probleme !
- le bouton qui pertmet de faire la copie il est sur quelle feuille ?
- qu'est-ce qui te permet de savoir qu'une soumission a été acceptée ?
chan33
Messages postés36Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 5 février 2009 28 août 2008 à 17:54
C'est certain que je prends peut-être des chemins plus long pour arriver à mes fins, mais je suis parfaitement nouvelle dans la programmation avec aucune connaissance et aucune expérience. C'est ma première expérience et je trouve comment faire un peu partout sur le forum. Alors tant que ça fait la job, j'en suis bien heureuse.
J'ai continué à travailler sur cette macro et j'ai trouvé ce que j'avais de besoin. Le voici donc :
'On sélectionne la feuille
Sheets("Liste des soumissions").Select
'On demande de sélectionner une ligne
Set Result = Application.InputBox("Sélectionner la description et le nom du client à copier", "Sélection", , , , , », 8)
'On récupère le no de la ligne dans le cas où une cellule est sélectionnée
LigneSelected = Result.Row
'On sélectionne les cellules de la ligne concernée
ActiveSheet.Range("B" & LigneSelected & ":C" & LigneSelected).Select
'On copie
Worksheets("Liste des soumissions").Range("B" & LigneSelected & ":C" & LigneSelected).Copy _
Destination:=Worksheets("Échéanciers").Range("D" & index & ":E" & index)
Merci pour la simplification de la création du numéro de projet