Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

recopie bas calcul double condition

  • Initiateur de la discussion Olivierd
  • Date de début
O

Olivierd

Guest
Bonjour le forum,

Je souhaite recopier vers le bas jusqu'à trouver une ligne vide,
un calcul avec une double condition ( IF(COUNTA(RC[-12]:RC[-1])>0 ET IF(RC[-14]<>""Apprenti"" )

Voici le calcul:

'Range("AB2").Select
'ActiveCell.FormulaR1C1 = _
'"=IF(COUNTA(RC[-12]:RC[-1])>0,IF(RC[-14]<>""Apprenti"",(SUM(RC[-12]:RC[-1]))/(COUNTA(RC[-12]:RC[-1]))/HORAIRE,""""),"""")"

J'ai essayé en vain de le présenter ainsi:

Sub Chao_man()
Dim calcul001 As Range
With ActiveSheet

For Each calcul001 In .Range("??").End(xlUp).Row)
If (calcul001.FormulaR1C1 = "?") Then
calcul001.Offset(0, ?).FormulaR1C1 = "?"
End If
Next calcul001
End With
End Sub

Hélas, je suis un gros c.. impossible de m'en sortir

Auriez-vous quelques idées sur mon problème ?

très cordialement
 
J

Jean-Marie

Guest
Bonsoir Olivier

Regarde la réponse de Zon sur ce fil Lien supprimé

Dans ton cas tu peux utiliser la 1ère version avec formulaR1C1, tes références de cellule dans la formule ne sont pas aboslues.

@+Jean-Marie
 
O

Olivierd

Guest
bonsoir Jean-Marie,
merci pour le fil, mais il ne semble pas correspondre à mon cas

en effet, je ne peux pas recopier vers le bas ( l'"autofill" du fil ) car mon fichier de données et différent à chaque ouverture de macro ( et je ne peux définir à l'avance la dernière cellule de recopie vers le bas )

c'est pour cela que je cherche présenter le code de la mière ci-dessus

merci pour ton aide
cordialement
 
J

Jean-Marie

Guest
Re...

Tu n'as pas regardé voir analysé ce que proposait Zon dans ce code

With Range("M54")
.FormulaR1C1 = "=[Atelier.xls]Feuil1!R2C1"
.autofill [ME54:M60]
end with

.autofill [M54:M60] limite la recopie à la plage M54:M60, [] correspond à un Range

With .Range("AB2")
.FormulaR1C1 = ta formule
.autofill .Range("AB2:AB" &.Range("A65536").End(xlUp).Row))
end with
J'ai mis la récupération du nombre de lignes utilisées dans le tableau, sur la colonne A...

@+Jean-Marie
 
C

CHti160

Guest
Salut "Olivierd"
bonsoir le "FORUM"
En pièce Jointe, peut être un exemple qui peut te servir si j'ai compris la question(Lol)
A+++
Jean Marie
 

Pièces jointes

  • RECOPIE.zip
    9.9 KB · Affichages: 19
  • RECOPIE.zip
    9.9 KB · Affichages: 19
  • RECOPIE.zip
    9.9 KB · Affichages: 22
O

Olivierd

Guest
Bonsoir,
merci pour vos réponses,
je vais essayer demain dès l'aube car ce soir je n'ai plus d'allumettes pour retenir mes paupières...
Bonne nuit

cordialement
 
O

Olivierd

Guest
bonjour le forum, bonjour Jean-Marie,

J'ai donc corrigé en
With Range("AB2")
.FormulaR1C1 = "=IF(COUNTA(RC[-12]:RC[-1])>0,IF(RC[-14]<>""Apprenti"",(SUM(RC[-12]:RC[-1]))/(COUNTA(RC[-12]:RC[-1]))/HORAIRE,""""),"""")"
.AutoFill .Range("AB2:AB" & .Range("AB65536").End(xlUp).Row)
End With

Mais j'ai un message d'erreur 1004: " la méthode"range" de l'objet"range" à échoué

? je ne comprends pas; et vous ?

cordialement
 
J

Jean-Marie

Guest
Bonjour

With Range("AB2")
.FormulaR1C1 = "=IF(COUNTA(RC[-12]:RC[-1])>0,IF(RC[-14]<>""Apprenti"",(SUM(RC[-12]:RC[-1]))/(COUNTA(RC[-12]:RC[-1]))/HORAIRE,""""),"""")"
.AutoFill Range("AB2:AB" & Range("A65536").End(xlUp).Row)
End With

J'ai mis la récupération du nombre de lignes utilisées dans le tableau, sur la colonne A, comme ton tableau est variable en longueur.

@+Jean-Marie
 
C

CHti160

Guest
Salut "Olivierd"
bonjour le "FORUM"
que veux tu dire par elle est dédiée a Windows je t'ai joint un fichier Zippé???
de plus je pense que ta methode pour recuperer le numero de ligne n'est pas bonne
'exemple de la pice jointe
'addition des colonnes A ET B dans C
'surC2:C&L
Sub Chao_man()
Dim L As Long
With ActiveSheet
L = .Range("A65536").End(xlUp).Row'detecte la derniere ligne non vide
.Range("C2:C" & L).ClearContents'efface la zone
.Range("C2").Select
End With
With ActiveCell
If .Value = "" Then
.FormulaR1C1 = "=SUM(RC[-2]:RC[-1])'colle la fonction dans C2
Selection.AutoFill Destination:=Range("C2:C" & L)et la recopie dans la zone la Zone delimitée (C2:C&L)
End If
End With
End Sub

tiens moi au courant
A+++
Jean Marie
 
C

CHti160

Guest
OupSSS !!!!!!!!!!!!!!!!
Encore Jean- Marie
Salut à toi
et c'est bien ce que je pensais pour la methode
pour ce qui est du "Dédiée Windows"quelqu'un peu me dire?
merci d'avance
A+++
Jean Marie
 
O

Olivierd

Guest
bonsoir Jean-Marie Ts.,

"... J'ai mis la récupération du nombre de lignes utilisées dans le tableau, sur la colonne A, comme ton tableau est variable en longueur..."

merci pour ta réponse, j'avais vu ta remarque sans la comprendre;
Cordialement

olivierd
 
C

CHti160

Guest
reSalut "Olivierd"
bonsoir le "FORUM"
Merci mais je ne savais pas que tu étais sous mac
je ne suis pas un pro(Lol)
tu peux quand même accèder au code dans VBA ?
pour ensuite l'adapter peut être !
ou alors les fichiers ne te sont pas accessibles et c'est dommage
à 11h46 le code du post correspond à l'incertion d'une formule là une Addition dans la cellule C2 des cellules des colonnes A et B et sa recopie dans la plage délimitée C2:C&L
mais bon si tu ne peux exploiter ce code je ne connais pas celui de Mac
désolé
A+++
Jean Marie
 

Discussions similaires

Réponses
11
Affichages
652
Réponses
1
Affichages
346
Réponses
0
Affichages
288
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…