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
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
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
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
steve-o21 a dit :
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/articles/aspnet/aspnet2exc...
neguib
Tiens, il y a quelque chose de très similaire là:
http://forum.hardware.fr/forum2.php?config=hardwarefr.i...
http://forum.hardware.fr/forum2.php?config=hardwarefr.i...
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.
Merci d'avance.
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.
Private Sub Ok_Click()
Dim numlig As Integer
numlig = 1
If nom = "" Or nom = " " Then
MsgBox ("Veuillez entrer un nom d'utilisateur pour continuer"), vbOKOnly
GoTo fin
Else
ActiveWorkbook.Worksheets.Add
ActiveSheet.Name = nom
Range("A1").Value = "Id"
Range("B1").Value = "ouverture:date"
Range("C1").Value = "ouverture:heure"
Range("D1").Value = "fermeture:date"
Range("E1").Value = "fermeture:heure"
For ligne = 1 To Worksheets("journal").UsedRange.Rows.Count
If UCase(Worksheets("journal").Cells(ligne, 6).Value) = UCase(nom.Value) Then
numlig = numlig + 1
Worksheets("journal").Rows(ligne).Range("A1:E1").Copy (Worksheets("gabri012").Rows(numlig).Range("A1:E1"))
End If
Next
If numlig = 1 Then
MsgBox ("L'utilisateur n'a pas ouvert de session"), vbOKOnly
End If
End If
fin:
Unload utilisateur
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...
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...
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumMacro copie d'une ligne
- ForumCopie ligne excel vba
- ForumExcel recherche et copie d'une ligne
- ForumExcel formule copie ligne
- ForumMacro copie ligne dans tableau
- ForumProgrammation vba sql
- articlesVba copie fichier
- ForumVba copie onglet
- ForumVba copie en boucle
- ForumCopie de ligne dans excel
- Voir plus