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
Jacquouille
Bonjour
Désolé, mais pour moi, ce n'est pas plus clair....
Une seule ligne (a2:a6) ?????
en ligne 9 en B et AF ?????





Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Lionel M" a écrit dans le message de groupe de discussion :


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
renseignant les cellules A2:A6) en ligne 9 en B et AF.
De fois on se laisse poter par l'euphorie ! lol

Lionel


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
Lionel M
Le dimanche 24 janvier 2016 16:13:59 UTC+1, Jacquouille a écrit :
Bonjour
Désolé, mais pour moi, ce n'est pas plus clair....
Une seule ligne (a2:a6) ?????
>> en ligne 9 en B et AF ?????

Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Lionel M" a écrit dans le message de groupe de discussion :


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
renseignant les cellules A2:A6) en ligne 9 en B et AF.
De fois on se laisse poter par l'euphorie ! lol

Lionel


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com




Il suffit de regarder le fichier joint ...
Avatar
isabelle
la macro agit directement sur la ligne concernée,

Sub test()
Dim sMonth As Range, sNom As String, fDate As Integer, lDate As Integer
Dim resultat As String, rw As Long, rw1 As Long, rw2 As Long, c As Range

Set sMonth = Sheets("" & Sheets("CP-MAL").Range("A2")).Range("A:A")
sNom = Sheets("CP-MAL").Range("A3")
fDate = Sheets("CP-MAL").Range("A5") + 1
lDate = Sheets("CP-MAL").Range("A6") + 1
resultat = Sheets("CP-MAL").Range("A4")
rw1 = Application.Match(sNom, sMonth, 0)
rw2 = rw1 + 4
rw = Application.Match(resultat, Sheets("" &
Sheets("CP-MAL").Range("A2")).Range("A" & rw1 & ":A" & rw2), 0) + rw1 - 1

With Sheets("" & Sheets("CP-MAL").Range("A2"))
plgDestin = .Range(.Cells(rw, fDate), .Cells(rw, lDate)).Address
End With

For Each c In Range(plgDestin)
If c = 0 Then
Range(c.Address) = LCase(resultat)
Else
Range(c.Address) = UCase(resultat)
End If
Next
End Sub

isabelle

Le 2016-01-24 06:14, Lionel M a écrit :
Bonjour,
Oui il s'agit bien d'une seule ligne (celle qu'on vient d'appeler en renseignant les cellules A2:A6) en ligne 9 en B et AF.
De fois on se laisse poter par l'euphorie ! lol

Lionel

Avatar
Lionel M
Le lundi 25 janvier 2016 03:25:10 UTC+1, isabelle a écrit :
la macro agit directement sur la ligne concernée,

Sub test()
Dim sMonth As Range, sNom As String, fDate As Integer, lDate As Integer
Dim resultat As String, rw As Long, rw1 As Long, rw2 As Long, c As Range

Set sMonth = Sheets("" & Sheets("CP-MAL").Range("A2")).Range("A:A")
sNom = Sheets("CP-MAL").Range("A3")
fDate = Sheets("CP-MAL").Range("A5") + 1
lDate = Sheets("CP-MAL").Range("A6") + 1
resultat = Sheets("CP-MAL").Range("A4")
rw1 = Application.Match(sNom, sMonth, 0)
rw2 = rw1 + 4
rw = Application.Match(resultat, Sheets("" &
Sheets("CP-MAL").Range("A2")).Range("A" & rw1 & ":A" & rw2), 0) + rw1 - 1

With Sheets("" & Sheets("CP-MAL").Range("A2"))
plgDestin = .Range(.Cells(rw, fDate), .Cells(rw, lDate)).Address
End With

For Each c In Range(plgDestin)
If c = 0 Then
Range(c.Address) = LCase(resultat)
Else
Range(c.Address) = UCase(resultat)
End If
Next
End Sub

isabelle

Le 2016-01-24 06:14, Lionel M a écrit :
> Bonjour,
> Oui il s'agit bien d'une seule ligne (celle qu'on vient d'appeler en re nseignant les cellules A2:A6) en ligne 9 en B et AF.
> De fois on se laisse poter par l'euphorie ! lol
>
> Lionel
>



bonjour
erreur d'incompatibilité 13 en execution de la macro sur le passage sur r w...
Avatar
MichD
En attendant qu'isabelle revienne, regarde ceci :

rw = Application.Match(resultat, Sheets("" &
Sheets("CP-MAL").Range("A2")).Range("A" & rw1 & ":A" & rw2), 0) + rw1 -1

La variable RW a le type "LONG"

Si la fonction "Match" ne trouve pas ce qu'elle cherche dans la plage de
cellules, elle retourne une erreur. Une valeur d'erreur est incompatible
avec une valeur de type "LONG" d'où l'erreur 13.

Modifie le type de la variable RW As Long pour Dim RW As Variant
Et pour le reste de la macro tu fais ceci :

If Err= 0 then
'Le reste de la macro
Else
Msgbox "La valeur """ & resultat & """ n'a pas été trouvée." & _
Vbcrlf & "Macro arrêtée."
Exit sub
End if
Avatar
Lionel M
Le lundi 25 janvier 2016 21:37:15 UTC+1, Lionel M a écrit :
Le lundi 25 janvier 2016 03:25:10 UTC+1, isabelle a écrit :
> la macro agit directement sur la ligne concernée,
>
> Sub test()
> Dim sMonth As Range, sNom As String, fDate As Integer, lDate As Integer
> Dim resultat As String, rw As Long, rw1 As Long, rw2 As Long, c As Rang e
>
> Set sMonth = Sheets("" & Sheets("CP-MAL").Range("A2")).Range("A:A")
> sNom = Sheets("CP-MAL").Range("A3")
> fDate = Sheets("CP-MAL").Range("A5") + 1
> lDate = Sheets("CP-MAL").Range("A6") + 1
> resultat = Sheets("CP-MAL").Range("A4")
> rw1 = Application.Match(sNom, sMonth, 0)
> rw2 = rw1 + 4
> rw = Application.Match(resultat, Sheets("" &
> Sheets("CP-MAL").Range("A2")).Range("A" & rw1 & ":A" & rw2), 0) + rw1 - 1
>
> With Sheets("" & Sheets("CP-MAL").Range("A2"))
> plgDestin = .Range(.Cells(rw, fDate), .Cells(rw, lDate)).Address
> End With
>
> For Each c In Range(plgDestin)
> If c = 0 Then
> Range(c.Address) = LCase(resultat)
> Else
> Range(c.Address) = UCase(resultat)
> End If
> Next
> End Sub
>
> isabelle
>
> Le 2016-01-24 06:14, Lionel M a écrit :
> > Bonjour,
> > Oui il s'agit bien d'une seule ligne (celle qu'on vient d'appeler en renseignant les cellules A2:A6) en ligne 9 en B et AF.
> > De fois on se laisse poter par l'euphorie ! lol
> >
> > Lionel
> >

bonjour
erreur d'incompatibilité 13 en execution de la macro sur le passage sur rw...



Application.Match peut etre incompatible sur excel 2000 ?
Avatar
Lionel M
Le lundi 25 janvier 2016 21:55:57 UTC+1, MichD a écrit :
En attendant qu'isabelle revienne, regarde ceci :

rw = Application.Match(resultat, Sheets("" &
Sheets("CP-MAL").Range("A2")).Range("A" & rw1 & ":A" & rw2), 0) + rw1 -1

La variable RW a le type "LONG"

Si la fonction "Match" ne trouve pas ce qu'elle cherche dans la plage de
cellules, elle retourne une erreur. Une valeur d'erreur est incompatible
avec une valeur de type "LONG" d'où l'erreur 13.

Modifie le type de la variable RW As Long pour Dim RW As Variant
Et pour le reste de la macro tu fais ceci :

If Err= 0 then
'Le reste de la macro
Else
Msgbox "La valeur """ & resultat & """ n'a pas été trouvée." & _
Vbcrlf & "Macro arrêtée."
Exit sub
End if



C
Avatar
Lionel M
Le lundi 25 janvier 2016 21:55:57 UTC+1, MichD a écrit :
En attendant qu'isabelle revienne, regarde ceci :

rw = Application.Match(resultat, Sheets("" &
Sheets("CP-MAL").Range("A2")).Range("A" & rw1 & ":A" & rw2), 0) + rw1 -1

La variable RW a le type "LONG"

Si la fonction "Match" ne trouve pas ce qu'elle cherche dans la plage de
cellules, elle retourne une erreur. Une valeur d'erreur est incompatible
avec une valeur de type "LONG" d'où l'erreur 13.

Modifie le type de la variable RW As Long pour Dim RW As Variant
Et pour le reste de la macro tu fais ceci :

If Err= 0 then
'Le reste de la macro
Else
Msgbox "La valeur """ & resultat & """ n'a pas été trouvée." & _
Vbcrlf & "Macro arrêtée."
Exit sub
End if



bonsoir
Ca na fonctionne pas mieux .. meme erreur au meme endroit ...
Lionel
Avatar
MichD
Ce que tu as oublié, tu dois insérer au début de la macro

"On Error Resume Next"

Si la fonction "Match" ne trouve pas ce qu'elle cherche, elle retourne
une erreur, si tu veux que la macro continue de s'exécuter, tu dois
utiliser cette petite phrase!
Avatar
isabelle
essai avec ce fichier : http://www.cjoint.com/c/FAAe1lC7Tca

isabelle

Le 2016-01-25 15:37, Lionel M a écrit :

bonjour
erreur d'incompatibilité 13 en execution de la macro sur le passage sur rw...

1 2 3 4 5