Récupérer ligne d'une fonction Range.find
Résolu
Sarkatore
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'essaye actuellement de créer un bouton permettant d'ajouter une colonne lorsque l'on veut ajouter "une génération". J'aimerai par la même occasion que lorsqu'on ajoute une génération, l'intituler des la colonne soit "Génération ..." pour les 4 tableaux
Pour cela j'essaye de récupérer le numéro de ligne d'une fonction range.find mais je n'y arrive pas
Pouvez vous m'aider ?
Private Sub CommandButton1_Click()
Dim generation As Integer
Dim primemoy, Agemoy, Sanseff, contrat As Range
Dim ligneprime, ligneAge, ligneeffet, lignecontrat As Integer
If MsgBox("Voulez vous ajouter une génération ?", vbYesNo, "Nouvelle génération") = vbYes Then
generation = InputBox("Année de la nouvelle génération", "Nouvelle génération")
dercol = Cells(3, 16384).End(xlToLeft).Column
Columns(dercol).Copy
Columns(dercol + 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Set primemoy = Sheets("Feuil4").Columns(1).Find("prime moyenne")
Set Agemoy = Range("A:A").Find("Age moyen", lookat:=xlWhole)
Set Sanseff = Range("A:A").Find("Sans effet", lookat:=xlWhole)
Set contrat = Range("A:A").Find("Nombre de contrat", lookat:=xlWhole)
Set ligneprime = Range("primemoy").Row
Set ligneAge = Range(Agemoyen).Row
Set ligneeffet = Range(Sanseff).Row
Set lignecontrat = Range(contrat).Row
Cells(ligneprime, dercol + 1).Value = "Génération " & generation
Cells(ligneAge, dercol + 1).Value = "Génération " & generation
Cells(ligneeffet, dercol + 1).Value = "Génération " & generation
Cells(lignecontrat, dercol + 1).Value = "Génération " & generation
End If
End Sub
J'essaye actuellement de créer un bouton permettant d'ajouter une colonne lorsque l'on veut ajouter "une génération". J'aimerai par la même occasion que lorsqu'on ajoute une génération, l'intituler des la colonne soit "Génération ..." pour les 4 tableaux
Pour cela j'essaye de récupérer le numéro de ligne d'une fonction range.find mais je n'y arrive pas
Pouvez vous m'aider ?
Private Sub CommandButton1_Click()
Dim generation As Integer
Dim primemoy, Agemoy, Sanseff, contrat As Range
Dim ligneprime, ligneAge, ligneeffet, lignecontrat As Integer
If MsgBox("Voulez vous ajouter une génération ?", vbYesNo, "Nouvelle génération") = vbYes Then
generation = InputBox("Année de la nouvelle génération", "Nouvelle génération")
dercol = Cells(3, 16384).End(xlToLeft).Column
Columns(dercol).Copy
Columns(dercol + 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Set primemoy = Sheets("Feuil4").Columns(1).Find("prime moyenne")
Set Agemoy = Range("A:A").Find("Age moyen", lookat:=xlWhole)
Set Sanseff = Range("A:A").Find("Sans effet", lookat:=xlWhole)
Set contrat = Range("A:A").Find("Nombre de contrat", lookat:=xlWhole)
Set ligneprime = Range("primemoy").Row
Set ligneAge = Range(Agemoyen).Row
Set ligneeffet = Range(Sanseff).Row
Set lignecontrat = Range(contrat).Row
Cells(ligneprime, dercol + 1).Value = "Génération " & generation
Cells(ligneAge, dercol + 1).Value = "Génération " & generation
Cells(ligneeffet, dercol + 1).Value = "Génération " & generation
Cells(lignecontrat, dercol + 1).Value = "Génération " & generation
End If
End Sub
Configuration: Windows / Chrome 88.0.4324.190
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
un exemple:
Attention, pour déclarer correctement chaque variable, il faut specifier le type de chacune:
un exemple:
Dim primemoy As Range Dim ligneprime As long Set primemoy = Sheets("Feuil4").Columns(1).Find("prime moyenne") ligneprime = primemoy.Row
Attention, pour déclarer correctement chaque variable, il faut specifier le type de chacune:
Dim primemoy As Range, Agemoy As Range, Sanseff As Range, contrat As Range
C'est plus court, mais plus compliqué quand cela ne marche pas bien.