Soucis de formule en VBA excel
Résolu
2pax.cruz
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je vous explique ce que je veux faire.
En fait, j'ai un grand tableau excel et je tente de faire, sur une feuille à part, un formulaire où les utilisateurs pourront sélectionner les colonnes du tableau qu'ils veulent voir.
J'ai déjà fait le formulaire, je sais retoruvé la colonne correspondante mais je n'arrive pas à affecter à ma nouvelle feuille, un lien vers les cellules de départ.
Je sais pas si je suis clair... Mais j'aimerais, en fait, donner à une cellule, une formule du style = Tableau!A1
Mais en VBA, je n'y arrive pas. Je vous met mon code :
'Colonne A sur la vue
Colonne1 = ComboBox1.Value
For n = 1 To 25 'car 25 colonnes sur le tableau
If Sheets("tableau").Cells(21, n).Value Like Colonne1 Then
For i = 21 To 1500
Sheets(NomFeuilleDepart).Cells(i, 1).Formula = "=tableau!" & Cells(i, n)
Next i
Exit For
End If
Next n
Je vous explique ce que je veux faire.
En fait, j'ai un grand tableau excel et je tente de faire, sur une feuille à part, un formulaire où les utilisateurs pourront sélectionner les colonnes du tableau qu'ils veulent voir.
J'ai déjà fait le formulaire, je sais retoruvé la colonne correspondante mais je n'arrive pas à affecter à ma nouvelle feuille, un lien vers les cellules de départ.
Je sais pas si je suis clair... Mais j'aimerais, en fait, donner à une cellule, une formule du style = Tableau!A1
Mais en VBA, je n'y arrive pas. Je vous met mon code :
'Colonne A sur la vue
Colonne1 = ComboBox1.Value
For n = 1 To 25 'car 25 colonnes sur le tableau
If Sheets("tableau").Cells(21, n).Value Like Colonne1 Then
For i = 21 To 1500
Sheets(NomFeuilleDepart).Cells(i, 1).Formula = "=tableau!" & Cells(i, n)
Next i
Exit For
End If
Next n
A voir également:
- Soucis de formule en VBA excel
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Excel mise en forme conditionnelle formule - Guide
- Formule somme excel colonne - Guide
- Liste déroulante excel - Guide
5 réponses
Je viens de trouver. Je ne connaissais pas l'utilisation de Cells().Adress
Cependant, cela marche très bien mais lorsqu'on insère une ligne dans le tableau, ça en insère une aussi dans la deuxième mais sa valeur est alors #Ref!
Comment faire?
Merci.
Cependant, cela marche très bien mais lorsqu'on insère une ligne dans le tableau, ça en insère une aussi dans la deuxième mais sa valeur est alors #Ref!
Comment faire?
Merci.
2pax.cruz
En fait non, ça n'ajoute pas la ligne. Bizarre.
Bonjour,
remplace la ligne :
Sheets(NomFeuilleDepart).Cells(i, 1).Formula = "=tableau!" & Cells(i, n)
par celle-ci :
Worksheets(NomFeuilleDepart).Cells(i, 1).FormulaR1C1 = "=tableau!R" & i & "C" & n
Bonne journée
remplace la ligne :
Sheets(NomFeuilleDepart).Cells(i, 1).Formula = "=tableau!" & Cells(i, n)
par celle-ci :
Worksheets(NomFeuilleDepart).Cells(i, 1).FormulaR1C1 = "=tableau!R" & i & "C" & n
Bonne journée
Cela permet de définir la référence d'une cellule par la notation LxCy ou x est le numero de la ligne et y est le numero de la colonne.
Donc avec formulaR1C1 tu peux définir une formule ou les index de colonne ET de ligne sont des entiers, contrairement à la notation A1
Donc en exemple la notation E2 et la notation L2C5 définisse la même cellule.
En VBA, anglais oblige, L2C5 devient dans ton code R2C5.
Donc avec formulaR1C1 tu peux définir une formule ou les index de colonne ET de ligne sont des entiers, contrairement à la notation A1
Donc en exemple la notation E2 et la notation L2C5 définisse la même cellule.
En VBA, anglais oblige, L2C5 devient dans ton code R2C5.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Pour obtenir ton résultat, il faut :
Chercher dans les colonnes, à la ligne 21, la valeur contenue dans le combobox1 et en retourner le numéro de colonne correspondante :
Ensuite, copier le contenu de cette colonne, de la ligne 21 à la dernière ligne complétée, vers la feuille NomFeuilleDepart à partir de A21 :
Code complet :
Pour obtenir ton résultat, il faut :
Chercher dans les colonnes, à la ligne 21, la valeur contenue dans le combobox1 et en retourner le numéro de colonne correspondante :
Dim numcol As Integer With Sheets("tableau").Range("A21:Y21") numcol = .Cells.Find(Combobox1.Value).Column End With
Ensuite, copier le contenu de cette colonne, de la ligne 21 à la dernière ligne complétée, vers la feuille NomFeuilleDepart à partir de A21 :
Dim derlig As Integer With Sheets("tableau") derlig = .Cells(65536, numcol).End(xlUp).Row .Range(.Cells(21, numcol), .Cells(derlig, numcol).Copy Sheets(NomFeuilleDepart).Cells(1, 1) End With
Code complet :
Dim numcol, derlig As Integer With Sheets("tableau").Range("A21:Y21") numcol = .Cells.Find(Combobox1.Value).Column End With With Sheets("tableau") derlig = .Cells(65536, numcol).End(xlUp).Row .Range(.Cells(21, numcol), .Cells(derlig, numcol).Copy Sheets(NomFeuilleDepart).Cells(1, 1) End With Sheets(NomFeuilleDepart).Activate