Se connecter avec
S'enregistrer | Connectez-vous

Programmation VBA: copie d'une ligne

Dernière réponse : dans Programmation

Bonsoir à tous.
Il faut que je créé un programme permettant à un utilisateur d'entrer un nom afin de créer une nouvelle feuille excel et de copier les données liées à cet utilisateur (peut etre présent plusieurs fois).

Voici mon programme:
______________________________________________________________
Private Sub Ok_Click()
If nom = "" Or nom = " " Then
MsgBox ("Veuillez entrer un nom d'utilisateur pour continuer"), vbOKOnly
GoTo fin
Else
For ligne = Worksheets("journal").UsedRange.Rows.Count To 1 Step -1
If UCase(Worksheets("journal").Cells(ligne, 6).Value) = UCase(nom.Value) Then
GoTo suite
End If
Next
MsgBox ("L'utilisateur n'a pas ouvert de session"), vbOKOnly
GoTo fin
End If
suite:
ActiveWorkbook.Worksheets.Add
ActiveSheet.Name = nom
Range("A1:E1").Select
ActiveCell.Offset(0, 0).Value = "Id"
ActiveCell.Offset(0, 1).Value = "ouverture:D ate"
ActiveCell.Offset(0, 2).Value = "ouverture:heure"
ActiveCell.Offset(0, 3).Value = "fermeture date"
ActiveCell.Offset(0, 4).Value = "fermeture heure"
For ligne = Worksheets("journal").UsedRange.Rows.Count To 1 Step -1
If UCase(Worksheets("journal").Cells(ligne, 6).Value) = UCase(nom.Value) Then
'copier toute la ligne dans la ligne 1ere ligne vide de la feuille nom
End If
Next
fin:
Unload utilisateur
End Sub
_____________________________________________________________________
Merci d'avance

Autres pages sur : programmation vba copie ligne

Lassé par la pub ? Créez un compte

Avec mon programme j'arrive à créer une nouvelle feuille et à remplir les titres de cette feuille. J'arrive aussi à trouver les lignes contenant le nom saisi par l'utilisateur (par msgbox) mais je n'arrive pas à les copier dans la feuille crée.
Merci de ton aide.

Tout d'abord je voulais vous remercier tous pour votre aide.
Bon alors voilà, en regardant un peu partout sur internet g réussi à trouver une commande me permettant de copier les lignes que je voulais. Je l'ai donc adapté à mon programme mais ca ne marche pas. Quand je l'exécute ca me marque "erreur d'exécution '13':incompatibilité de type pour la ligne Worksheets("journal").Rows(ligne).Range("A1:E1").Copy (Worksheets(nom).Rows(numlig).Range("A1:E1")) (ligne 18 de mon programme) par contre j'ai essayé de copier dans une feuille que j'ai appellé au préalable "Feuille1" et là il veut bien me copier ce que je lui demande. Apparement c'est la variable nom qu'il n'apprécie pas mais j'en ai besoin car le nom de la feuille de destination est le nom entré par l'utilisateur (lignes 18 et 19). Je ne sais pas pourquoi cela ne marche pas ni comment y remédier.
  1. Private Sub Ok_Click()
  2. Dim numlig As Integer
  3. numlig = 1
  4.  
  5.  
  6. If nom = "" Or nom = " " Then
  7. MsgBox ("Veuillez entrer un nom d'utilisateur pour continuer"), vbOKOnly
  8. GoTo fin
  9.  
  10. Else
  11. ActiveWorkbook.Worksheets.Add
  12. ActiveSheet.Name = nom
  13. Range("A1").Value = "Id"
  14. Range("B1").Value = "ouverture:date"
  15. Range("C1").Value = "ouverture:heure"
  16. Range("D1").Value = "fermeture:date"
  17. Range("E1").Value = "fermeture:heure"
  18.  
  19. For ligne = 1 To Worksheets("journal").UsedRange.Rows.Count
  20. If UCase(Worksheets("journal").Cells(ligne, 6).Value) = UCase(nom.Value) Then
  21. numlig = numlig + 1
  22. Worksheets("journal").Rows(ligne).Range("A1:E1").Copy (Worksheets("gabri012").Rows(numlig).Range("A1:E1"))
  23. End If
  24. Next
  25. If numlig = 1 Then
  26. MsgBox ("L'utilisateur n'a pas ouvert de session"), vbOKOnly
  27. End If
  28. End If
  29.  
  30. fin:
  31. Unload utilisateur
  32.  
  33. End Sub

Merci d'avance.

comment faire un programme qui:
calcul une volatilité(d une action par ex) en ayant une interface avec l utilisateur qui:
demande a l utilisateur sur combien de jours il veut sa volatilité et sur quelle action et a partir de quel jour il l a veut.(car je possede des feuilles excels de 20 actions sur 9 ans chacune soit pres de 2250 dates)
merci beaucoup a celui qui trouve et a ceux qui vont chercher...
Expert Programmation

Merci de créer ton propore sujet, et de ne pas polluer celui-ci. Dans ton nouveau sujet, tâche de demander plus d'aide sur la programmation et non pas quelque chose de tout fait !
Lassé par la pub ? Créez un compte