Vba excel
oliv64
-
herod1983 Messages postés 193 Date d'inscription Statut Membre Dernière intervention -
herod1983 Messages postés 193 Date d'inscription Statut Membre Dernière intervention -
m[E-07]
Bonjour à tous,
Débutant depuis... 2 jours j'essaie grace à votre site de comprendre le langage et créer des petites macros simple qui me permettraient de faciliter la création de mes fichiers dans mon boulot.
Le pb est le suivant:
à chaque nouveau chantier je créé un classeur qui comporte x feuille de calcul (x correspondant à chaque jour de chantier). Sur chaque feuille (sauf la première) la valeur de la cellule B5 par exemple, est égale à la valeur de la cellule B3 de la feuille précédente. Comment en langage vba effectuer celà et surtout créer un compteur pour répéter cette opération à toute les feuilles. Merci d'avance
Bonjour à tous,
Débutant depuis... 2 jours j'essaie grace à votre site de comprendre le langage et créer des petites macros simple qui me permettraient de faciliter la création de mes fichiers dans mon boulot.
Le pb est le suivant:
à chaque nouveau chantier je créé un classeur qui comporte x feuille de calcul (x correspondant à chaque jour de chantier). Sur chaque feuille (sauf la première) la valeur de la cellule B5 par exemple, est égale à la valeur de la cellule B3 de la feuille précédente. Comment en langage vba effectuer celà et surtout créer un compteur pour répéter cette opération à toute les feuilles. Merci d'avance
A voir également:
- Vba excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
4 réponses
Violà un petit programme !!!
j'ai écrit une formule en VBa qui est l'équivalent de "=Feuil(précédente)!B5"
j'ai essayé d'être clair
il est possible d'améliorer sans compliquer.....
Sub petit_programme()
Dim NbFeuille As Integer
Dim QteFeuille As Integer
Dim compteur As Integer
Dim I As Integer
Dim LeNomDeLaFeuille As String
NbFeuille = Val(InputBox("Combien de feuille voulez vous créer? :", "Création des feuilles", 1))
QteFeuille = Sheets.Count
For I = 1 To NbFeuille
Sheets.Add After:=Sheets(QteFeuille)
QteFeuille = Sheets.Count
Sheets(QteFeuille).Select
' ici je prends le nom de la feuille pour l'écrire dans une formule
LeNomDeLaFeuille = Sheets(QteFeuille - 1).Name
If QteFeuille > 2 Then ' si on est sur la 3ème feuille
Range("b3").FormulaR1C1 = "=" & LeNomDeLaFeuille & "!R[2]C"
End If
Next
End Sub
j'ai écrit une formule en VBa qui est l'équivalent de "=Feuil(précédente)!B5"
j'ai essayé d'être clair
il est possible d'améliorer sans compliquer.....
Sub petit_programme()
Dim NbFeuille As Integer
Dim QteFeuille As Integer
Dim compteur As Integer
Dim I As Integer
Dim LeNomDeLaFeuille As String
NbFeuille = Val(InputBox("Combien de feuille voulez vous créer? :", "Création des feuilles", 1))
QteFeuille = Sheets.Count
For I = 1 To NbFeuille
Sheets.Add After:=Sheets(QteFeuille)
QteFeuille = Sheets.Count
Sheets(QteFeuille).Select
' ici je prends le nom de la feuille pour l'écrire dans une formule
LeNomDeLaFeuille = Sheets(QteFeuille - 1).Name
If QteFeuille > 2 Then ' si on est sur la 3ème feuille
Range("b3").FormulaR1C1 = "=" & LeNomDeLaFeuille & "!R[2]C"
End If
Next
End Sub
salut
je te propose ceci: (a mettre dans thisworkbook)
- cela garde le même classeur mais pour chaque jour une nouvelle feuille
Private Sub Workbook_Open() 'a chaque ouverture de ton classeur fait la macro
Dim d As Integer 'déclare variable
Dim e As Integer ' integer(entier) = valeur de nombres entre -32768 à 32768
Dim f As Integer
Dim jour As Variant ' variant = quasiement n'importe qu'elle type de donnée
jour = Format(Date, "dddd dd mmmm yyyy") 'jour = aujourd'hui en format ex. mercredi 19mars
d = ActiveWorkbook.Sheets.Count ' d = compte le nombre de feuille,
f = d + 1 'le chiffre étant la derniere feuille du classeur
If Sheets(d).Range("A1").Value <> jour Then ' si la valeur en A1 (c'est une date) est différente de 'la date d'aujourd'hui alors
Sheets.Add 'création d'une feuille
ActiveSheet.Name = jour 'son nom est la date d'aujourd'hui
ActiveSheet.Move After:=Sheets(f) 'déplace la feuille en dernière position
Sheets(f).Range("A1").Value = jour 'inscrit dans la cellule A1 de la nouvelle feuille la date 'd'aujourd'hui
Sheets(f).Range("B3").Value = Sheets(d).Range("B5").Value 'copy une valeur de B5 de la feuille 'précédente
dans B3 de la nouvelle feuille
End If
End Sub
je te propose ceci: (a mettre dans thisworkbook)
- cela garde le même classeur mais pour chaque jour une nouvelle feuille
Private Sub Workbook_Open() 'a chaque ouverture de ton classeur fait la macro
Dim d As Integer 'déclare variable
Dim e As Integer ' integer(entier) = valeur de nombres entre -32768 à 32768
Dim f As Integer
Dim jour As Variant ' variant = quasiement n'importe qu'elle type de donnée
jour = Format(Date, "dddd dd mmmm yyyy") 'jour = aujourd'hui en format ex. mercredi 19mars
d = ActiveWorkbook.Sheets.Count ' d = compte le nombre de feuille,
f = d + 1 'le chiffre étant la derniere feuille du classeur
If Sheets(d).Range("A1").Value <> jour Then ' si la valeur en A1 (c'est une date) est différente de 'la date d'aujourd'hui alors
Sheets.Add 'création d'une feuille
ActiveSheet.Name = jour 'son nom est la date d'aujourd'hui
ActiveSheet.Move After:=Sheets(f) 'déplace la feuille en dernière position
Sheets(f).Range("A1").Value = jour 'inscrit dans la cellule A1 de la nouvelle feuille la date 'd'aujourd'hui
Sheets(f).Range("B3").Value = Sheets(d).Range("B5").Value 'copy une valeur de B5 de la feuille 'précédente
dans B3 de la nouvelle feuille
End If
End Sub