FORUM Tom's Hardware » Programmation » Autre » Programmation VBA: copie d'une ligne
 

Programmation VBA: copie d'une ligne

Il y a 374 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Programmation VBA: copie d'une ligne
 
Plus d'informations

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:date"  
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

Profil : Pointeur
Plus d'informations

balise [code] stp :o


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Profil : Pointeur
Plus d'informations

et elle est ou la question ?


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

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.

Plus d'informations

steve-o21 a écrit :

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.


Salut  
voici la reponse toute faite  
http://webman.developpez.com/artic [...] net2excel/  
neguib  

Plus d'informations

Tiens, il y a quelque chose de très similaire là:
 
http://forum.hardware.fr/forum2.ph [...] ash_post=0


Message édité par AlainTech le 23-05-2005 à 08:28:22
Plus d'informations

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.  

Code :
  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. fin:
  30. Unload utilisateur
  31. End Sub


Merci d'avance.

Plus d'informations

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...

zeb
Profil : Modérateur libre
Plus d'informations

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 !


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » Autre » Programmation VBA: copie d'une ligne
 

Annonces Google
Publicité