Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Aide sur fonction indirect

49 réponses
Avatar
Lionel M
http://www.cjoint.com/c/FArlY0kSVd4

Dans l'onglet CP-Mal

la ligne 9 appelle la ligne du mois A2 concernant la personne en A3

une fois cette ligne appell=E9e la macro fait un copier coller de cette lig=
ne puis c'est la que l'aide m'est indispensable modifier entre les dates st=
ipul=E9es les codes not=E9s par CP ou Mal suivant le cas design=E9 en A4...=
et ensuite de remettre cette ligne modifiee sur la bonne ligne de l'onglet =
du mois concern=E9

dans un premier temps la formule indirect ne fonctionne pas et rien ne sert=
d'aller plus loin si je n'arrive pas a obtenir le resultat escompt=E9 ....
Merci de l'aide !
Lionel

10 réponses

1 2 3 4 5
Avatar
isabelle
Le 2016-01-18 15:55, Lionel M a écrit :




bonjour,
une petite explication de la formule s'impose ...
si je veux copier la ligne 12 par exemple ?

Merci




sur ton fichier la structure est la même sur chaque onglet mois, c'est très
utile car il suffit d'ajouter 0, 1,2,3 ou 4 à la partie EQUIV
=INDEX(INDIRECT($A$2&"!"&ADRESSE(1;COLONNE())&":"&ADRESSE(5000;COLONNE()));EQUIV($A$3;INDIRECT($A$2&"!A:A");0)+$A9)

http://www.cjoint.com/c/FAvd2iBYtSa

isabelle
Avatar
Lionel M
Le jeudi 21 janvier 2016 04:57:45 UTC+1, isabelle a écrit :
>>> Le 2016-01-18 15:55, Lionel M a écrit :
> bonjour,
> une petite explication de la formule s'impose ...
> si je veux copier la ligne 12 par exemple ?
>
> Merci
>

sur ton fichier la structure est la même sur chaque onglet mois, c'est très
utile car il suffit d'ajouter 0, 1,2,3 ou 4 à la partie EQUIV
=INDEX(INDIRECT($A$2&"!"&ADRESSE(1;COLONNE())&":"&ADRESSE(5000;COLONNE( )));EQUIV($A$3;INDIRECT($A$2&"!A:A");0)+$A9)

http://www.cjoint.com/c/FAvd2iBYtSa

isabelle



Merci de cette explication claire et de cette exemple explicite...
Peut etre pourras tu m'aider pour la suite...
Dans mon fichier une macro copie la ligne de la formule créée precedemm ent et dans cette ligne copiée trouver entre les dates données en A5 po ur date début et A6 pour date fin , remplacer dans cette ligne entre ces dates les cases "pleines" par le code en A4 (en majuscules) et si la case e st vide en minuscule ...
Possible ou illusoire?

Merci de l'aide et du temps passé....

Lionel
Avatar
isabelle
Le 2016-01-21 17:47, Lionel M a écrit :
Dans mon fichier une macro copie la ligne de la formule créée precedemment et
dans cette ligne copiée trouver entre les dates données en A5 pour date début
et A6 pour date fin , remplacer dans cette ligne entre ces dates les cases
"pleines" par le code en A4 (en majuscules) et si la case est vide en
minuscule ... Possible ou illusoire?



c'est possible de copier mais il faut aussi coller et pour ça il faut connaitre
la destination.
si je comprend bien il faut copier (ou transférer) les données de la plage
CP-MAL! B9:P9 (pour cette exemple), mais ou ?
puis modifier les cellules renseignées par la valeur de la cellule CP-MAL!A4 en
majuscules
et modifier les cases vides par la valeur de la cellule CP-MAL!A4 en minuscule

ps/ il y a bien une macro dans ton classeur, mais elle ne donne pas d'indication
pour la destination des données.

Sub Macro1()
Dim s As String
Sheets("CP-MAL").Activate
Range(C5).Value
Sheets(s).Select
Range("A6:A44").Select
End Sub

isabelle
Avatar
isabelle
Le 2016-01-21 22:04, isabelle a écrit :
puis modifier les cellules renseignée



je voulais dire:

puis modifier les cellules renseignée de la plage destination

isabelle
Avatar
isabelle
par exemple si la plage destination est CP-MAL!B20:P20
mais c'est possible que la plage destination soit sur autre feuille et une plage
différente (mais de même dimension)

http://www.cjoint.com/c/FAwew3p7zUa

Sub Macro1()
Dim col1 As Integer, col2 As Integer, c As Range
With Sheets("CP-MAL")
col1 = Application.Match(.Range("A5"), Range("8:8"), 0)
col2 = Application.Match(.Range("A6"), Range("8:8"), 0)
dest = .Range(.Cells(20, col1), .Cells(20, col2)).Address
.Range(dest).Value = .Range(.Cells(9, col1), .Cells(9, col2)).Value
End With
For Each c In Range(dest)
If c = 0 Then
Range(c.Address) = LCase(Sheets("CP-MAL").Range("A4"))
Else
Range(c.Address) = UCase(Sheets("CP-MAL").Range("A4"))
End If
Next
End Sub

isabelle
Avatar
Lionel M
Le vendredi 22 janvier 2016 05:27:37 UTC+1, isabelle a écrit :
par exemple si la plage destination est CP-MAL!B20:P20
mais c'est possible que la plage destination soit sur autre feuille et un e plage
différente (mais de même dimension)

http://www.cjoint.com/c/FAwew3p7zUa

Sub Macro1()
Dim col1 As Integer, col2 As Integer, c As Range
With Sheets("CP-MAL")
col1 = Application.Match(.Range("A5"), Range("8:8"), 0)
col2 = Application.Match(.Range("A6"), Range("8:8"), 0)
dest = .Range(.Cells(20, col1), .Cells(20, col2)).Address
.Range(dest).Value = .Range(.Cells(9, col1), .Cells(9, col2)).Valu e
End With
For Each c In Range(dest)
If c = 0 Then
Range(c.Address) = LCase(Sheets("CP-MAL").Range("A4"))
Else
Range(c.Address) = UCase(Sheets("CP-MAL").Range("A4"))
End If
Next
End Sub

isabelle



le but est de copier la ligne 9 (B9:AF31) dans la ligne 17 en jaune B17:AF1 7
puis de modifier entre les dates données les codes presents par CP ou cp ou Mal ou Mld comme precedemment dit...et ensuite de reporter cette ligne modifiée dans l'onglet du mois dur la ligne de la personne concernée...
Avatar
Lionel M
Le vendredi 22 janvier 2016 22:06:38 UTC+1, Lionel M a écrit :
Le vendredi 22 janvier 2016 05:27:37 UTC+1, isabelle a écrit :
> par exemple si la plage destination est CP-MAL!B20:P20
> mais c'est possible que la plage destination soit sur autre feuille et une plage
> différente (mais de même dimension)
>
> http://www.cjoint.com/c/FAwew3p7zUa
>
> Sub Macro1()
> Dim col1 As Integer, col2 As Integer, c As Range
> With Sheets("CP-MAL")
> col1 = Application.Match(.Range("A5"), Range("8:8"), 0)
> col2 = Application.Match(.Range("A6"), Range("8:8"), 0)
> dest = .Range(.Cells(20, col1), .Cells(20, col2)).Address
> .Range(dest).Value = .Range(.Cells(9, col1), .Cells(9, col2)).Va lue
> End With
> For Each c In Range(dest)
> If c = 0 Then
> Range(c.Address) = LCase(Sheets("CP-MAL").Range("A4"))
> Else
> Range(c.Address) = UCase(Sheets("CP-MAL").Range("A4"))
> End If
> Next
> End Sub
>
> isabelle

le but est de copier la ligne 9 (B9:AF31) dans la ligne 17 en jaune B17:A F17
puis de modifier entre les dates données les codes presents par CP ou cp ou Mal ou Mld comme precedemment dit...et ensuite de reporter cette lign e modifiée dans l'onglet du mois dur la ligne de la personne concernée. ..


Lionel
Avatar
Lionel M
Le vendredi 22 janvier 2016 05:27:37 UTC+1, isabelle a écrit :
par exemple si la plage destination est CP-MAL!B20:P20
mais c'est possible que la plage destination soit sur autre feuille et un e plage
différente (mais de même dimension)

http://www.cjoint.com/c/FAwew3p7zUa

Sub Macro1()
Dim col1 As Integer, col2 As Integer, c As Range
With Sheets("CP-MAL")
col1 = Application.Match(.Range("A5"), Range("8:8"), 0)
col2 = Application.Match(.Range("A6"), Range("8:8"), 0)
dest = .Range(.Cells(20, col1), .Cells(20, col2)).Address
.Range(dest).Value = .Range(.Cells(9, col1), .Cells(9, col2)).Valu e
End With
For Each c In Range(dest)
If c = 0 Then
Range(c.Address) = LCase(Sheets("CP-MAL").Range("A4"))
Else
Range(c.Address) = UCase(Sheets("CP-MAL").Range("A4"))
End If
Next
End Sub

isabelle




Re...
le but est de copier la ligne 9 (B9:AF31) dans la ligne 17 en jaune B17:AF1 7
puis de modifier entre les dates données les codes presents par CP ou cp ou Mal ou Mld comme precedemment dit...et ensuite de reporter cette ligne modifiée dans l'onglet du mois (en A2) sur la ligne de la personne concer née...
Lionel
Avatar
isabelle
Le 2016-01-22 16:10, Lionel M a écrit :

le but est de copier la ligne 9 (B9:AF31)



ce n'est pas une ligne, mais plusieurs lignes 9:31
est ce que c'est une erreur de frappe ou bien plusieurs lignes ?

isabelle
Avatar
Lionel M
Le dimanche 24 janvier 2016 03:25:40 UTC+1, isabelle a écrit :
Le 2016-01-22 16:10, Lionel M a écrit :

> le but est de copier la ligne 9 (B9:AF31)

ce n'est pas une ligne, mais plusieurs lignes 9:31
est ce que c'est une erreur de frappe ou bien plusieurs lignes ?

isabelle



Bonjour,
Oui il s'agit bien d'une seule ligne (celle qu'on vient d'appeler en rensei gnant les cellules A2:A6) en ligne 9 en B et AF.
De fois on se laisse poter par l'euphorie ! lol

Lionel
1 2 3 4 5