.... récupérer les valeurs de cellules en ligne d'une feuille et les coller
en colonne dans la feuille 2.
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat de
la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction SI
dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
.... récupérer les valeurs de cellules en ligne d'une feuille et les coller
en colonne dans la feuille 2.
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat de
la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction SI
dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
.... récupérer les valeurs de cellules en ligne d'une feuille et les coller
en colonne dans la feuille 2.
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat de
la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction SI
dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat de
la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction SI
dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Bonjour,
.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" <jeanpi37oter_ceci@hotmail.com> a écrit dans le message de
news: %23RdH99AKJHA.5060@TK2MSFTNGP02.phx.gbl...
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat de
la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction SI
dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat de
la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction SI
dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat de
la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction SI
dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Bonjour,
.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" <jeanpi37oter_ceci@hotmail.com> a écrit dans le message de
news: %23RdH99AKJHA.5060@TK2MSFTNGP02.phx.gbl...
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat de
la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction SI
dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat de
la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction SI
dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" a écrit dans le message de
news:Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" <Dupond@marcel.fr> a écrit dans le message de
news:uBjdD4EKJHA.5516@TK2MSFTNGP03.phx.gbl...
Bonjour,
.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" <jeanpi37oter_ceci@hotmail.com> a écrit dans le message de
news: %23RdH99AKJHA.5060@TK2MSFTNGP02.phx.gbl...
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" a écrit dans le message de
news:Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce don t j'ai
besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules s eront
bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" a écrit dans le message denews:uBjdD4EKJHA.5
> Bonjour,
>>.... récupérer les valeurs de cellules en ligne d'une feuille et le s
>>coller en colonne dans la feuille 2.
> Si j'ai bien compris.......
> Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
> et colle dans feuille 2 A2:A11 (colonne A)
> '------------
> Sub jj()
> Sheets("Feuil1").Range("A1:J1").Copy
> Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xl None,
> SkipBlanks:úlse, Transpose:=True
> Application.CutCopyMode = False
> End Sub
> '-----------
> --
> Salutations
> JJ
> "JeanPi37" a écrit dans le message de
>news: %23RdH99AKJHA.5__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$z_
>> bonjour à tous,
>> Je bute depuis plusieurs jour sur le problème suivant :
>> Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
>> feuille et les coller en colonne dans la feuille 2.
>> Tout va bien pour les boucles For / Next imbriquées.
>> Tout va bien aussi si je récupère simplement la valeur.
>> Mais, comme certaines cellules de la feuille 1 sont vides, le résult at de
>> la fonction est alors 0.
>> Pour voir un "blanc", j'essaie d'utiliser - sans succès - une foncti on SI
>> dans la macro.
>> voici ce que ça donne.
>> Si quelqu'un à une idée géniale pour résoudre le problème, j e suis
>> preneur.
>> Merci d'avance
>> Jean PI
>> ---------------------------------------------------------------------- -----------------------------------------------
>> ig = 5
>> For i = 1 To 10
>> For j = 2 To 11
>> ' Ici, cela fonctionne --> Cells(lig, 2).Value = "= 'Feuil1'!R" &
>> valproc & "C" & j & ""
>> MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
>> Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
>> La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
>> mais elle prend la valeur 0 si la cellule d'origine est vide!
>> Pour résoudre cela, je voudrais utiliser une fonction SI.
>> Après quelques test, j'obtiens ceci en affichage:
>> MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""" ;" &
>> "'Feuil1'!R" & valproc & "C" & j & "; """")"
>> soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la premi ère
>> ligne
>> Mais quand j'applique la formule :
>> Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
>> "<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
>> J'obtiens :
>> --------------------------------------------
>> Erreur d'exécution '1004':
>> Erreur défnie par l'application ou par l'objet
>> Fin / Débogage / Aide
>> --------------------------------------------
>> d'ou vient l'erreur SVP ?
>> Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
>> Suite de la macro :
>> Select Case j
>> Case 2
>> Proc = lig - 2
>> Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C 1"
>> Case Else
>> End Select
>> lig = lig + 1
>> Next j
>> ' Traitement des Processus suivants
>> ' ---------------------------------
>> lig = lig + 5
>> If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
>> valproc = valproc + 1
>> Next i
>> ---------------------------------------------------------------------- -----------------------------------------------
>> Fin
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce don t j'ai
besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules s eront
bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" <Dup...@marcel.fr> a écrit dans le message denews:uBjdD4EKJHA.5 516@TK2MSFTNGP03.phx.gbl...
> Bonjour,
>>.... récupérer les valeurs de cellules en ligne d'une feuille et le s
>>coller en colonne dans la feuille 2.
> Si j'ai bien compris.......
> Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
> et colle dans feuille 2 A2:A11 (colonne A)
> '------------
> Sub jj()
> Sheets("Feuil1").Range("A1:J1").Copy
> Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xl None,
> SkipBlanks:=False, Transpose:=True
> Application.CutCopyMode = False
> End Sub
> '-----------
> --
> Salutations
> JJ
> "JeanPi37" <jeanpi37oter_c...@hotmail.com> a écrit dans le message de
>news: %23RdH99AKJHA.5__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$z_ _@TK2MSFTNGP02.phx.gbl...
>> bonjour à tous,
>> Je bute depuis plusieurs jour sur le problème suivant :
>> Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
>> feuille et les coller en colonne dans la feuille 2.
>> Tout va bien pour les boucles For / Next imbriquées.
>> Tout va bien aussi si je récupère simplement la valeur.
>> Mais, comme certaines cellules de la feuille 1 sont vides, le résult at de
>> la fonction est alors 0.
>> Pour voir un "blanc", j'essaie d'utiliser - sans succès - une foncti on SI
>> dans la macro.
>> voici ce que ça donne.
>> Si quelqu'un à une idée géniale pour résoudre le problème, j e suis
>> preneur.
>> Merci d'avance
>> Jean PI
>> ---------------------------------------------------------------------- -----------------------------------------------
>> ig = 5
>> For i = 1 To 10
>> For j = 2 To 11
>> ' Ici, cela fonctionne --> Cells(lig, 2).Value = "= 'Feuil1'!R" &
>> valproc & "C" & j & ""
>> MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
>> Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
>> La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
>> mais elle prend la valeur 0 si la cellule d'origine est vide!
>> Pour résoudre cela, je voudrais utiliser une fonction SI.
>> Après quelques test, j'obtiens ceci en affichage:
>> MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""" ;" &
>> "'Feuil1'!R" & valproc & "C" & j & "; """")"
>> soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la premi ère
>> ligne
>> Mais quand j'applique la formule :
>> Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
>> "<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
>> J'obtiens :
>> --------------------------------------------
>> Erreur d'exécution '1004':
>> Erreur défnie par l'application ou par l'objet
>> Fin / Débogage / Aide
>> --------------------------------------------
>> d'ou vient l'erreur SVP ?
>> Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
>> Suite de la macro :
>> Select Case j
>> Case 2
>> Proc = lig - 2
>> Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C 1"
>> Case Else
>> End Select
>> lig = lig + 1
>> Next j
>> ' Traitement des Processus suivants
>> ' ---------------------------------
>> lig = lig + 5
>> If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
>> valproc = valproc + 1
>> Next i
>> ---------------------------------------------------------------------- -----------------------------------------------
>> Fin
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce don t j'ai
besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules s eront
bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" a écrit dans le message denews:uBjdD4EKJHA.5
> Bonjour,
>>.... récupérer les valeurs de cellules en ligne d'une feuille et le s
>>coller en colonne dans la feuille 2.
> Si j'ai bien compris.......
> Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
> et colle dans feuille 2 A2:A11 (colonne A)
> '------------
> Sub jj()
> Sheets("Feuil1").Range("A1:J1").Copy
> Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xl None,
> SkipBlanks:úlse, Transpose:=True
> Application.CutCopyMode = False
> End Sub
> '-----------
> --
> Salutations
> JJ
> "JeanPi37" a écrit dans le message de
>news: %23RdH99AKJHA.5__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$z_
>> bonjour à tous,
>> Je bute depuis plusieurs jour sur le problème suivant :
>> Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
>> feuille et les coller en colonne dans la feuille 2.
>> Tout va bien pour les boucles For / Next imbriquées.
>> Tout va bien aussi si je récupère simplement la valeur.
>> Mais, comme certaines cellules de la feuille 1 sont vides, le résult at de
>> la fonction est alors 0.
>> Pour voir un "blanc", j'essaie d'utiliser - sans succès - une foncti on SI
>> dans la macro.
>> voici ce que ça donne.
>> Si quelqu'un à une idée géniale pour résoudre le problème, j e suis
>> preneur.
>> Merci d'avance
>> Jean PI
>> ---------------------------------------------------------------------- -----------------------------------------------
>> ig = 5
>> For i = 1 To 10
>> For j = 2 To 11
>> ' Ici, cela fonctionne --> Cells(lig, 2).Value = "= 'Feuil1'!R" &
>> valproc & "C" & j & ""
>> MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
>> Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
>> La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
>> mais elle prend la valeur 0 si la cellule d'origine est vide!
>> Pour résoudre cela, je voudrais utiliser une fonction SI.
>> Après quelques test, j'obtiens ceci en affichage:
>> MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""" ;" &
>> "'Feuil1'!R" & valproc & "C" & j & "; """")"
>> soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la premi ère
>> ligne
>> Mais quand j'applique la formule :
>> Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
>> "<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
>> J'obtiens :
>> --------------------------------------------
>> Erreur d'exécution '1004':
>> Erreur défnie par l'application ou par l'objet
>> Fin / Débogage / Aide
>> --------------------------------------------
>> d'ou vient l'erreur SVP ?
>> Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
>> Suite de la macro :
>> Select Case j
>> Case 2
>> Proc = lig - 2
>> Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C 1"
>> Case Else
>> End Select
>> lig = lig + 1
>> Next j
>> ' Traitement des Processus suivants
>> ' ---------------------------------
>> lig = lig + 5
>> If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
>> valproc = valproc + 1
>> Next i
>> ---------------------------------------------------------------------- -----------------------------------------------
>> Fin
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" a écrit dans le message de
news:Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" <Dupond@marcel.fr> a écrit dans le message de
news:uBjdD4EKJHA.5516@TK2MSFTNGP03.phx.gbl...
Bonjour,
.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" <jeanpi37oter_ceci@hotmail.com> a écrit dans le message de
news: %23RdH99AKJHA.5060@TK2MSFTNGP02.phx.gbl...
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" a écrit dans le message de
news:Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne d'une
feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Ou bien ais-je une erreur quelque part ?
Merci à vous deux.
Effectivement, la formule matricielle fait gagner beaucoup de temps.
Cela dit, pour répondre à Jacky et pour essayer de comprendre ce qui
n'allait pas, voici l'organisation de mon fichier.
Sur la Feuil1, j'ai 20 éléments (Chef) qui en contiennent chacun 10
(Sous-Chef) qui en contiennent eux-mêmes chacun 10 (Employés).
Les Sous-Chefs sont en colonne et les Eployés sont en ligne pour chaque
Sous-Chef.
Ce sont les Employés qui m'intéressent d'abord pour l'automatisation en
macro.
J'ai créé 20 feuilles qui ont chacune 10 x 10 éléments
Dans ma macro, je veux automatiser le remplissage des 10 x 10 cellules
avec ma fameuse fonction SI, et ce dans chacune des 20 feuilles.
A chaque passage, je renseigne d'abord la référence au sous-chef, puis les
références aux 10 employés de mes sous chefs.
Ceci, jusqu'à ce que les 10 sous-chefs et les 100 employés soient
renseignés (et ceci 20 fois).
Donc, je rappelle que dans la boucle (et même pour un seul),
ceci fonctionne :
Cells(lig, 2).Value = "='Feuil1'!R" & valproc & "C" & j & ""
Mais la fonction si
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
Ne fonctionne pas.
Pourtant, l'affichage dans une MsgBox ne montre pas d'erreur.
La fonction SI est-elle incompatible avec .Value ?
Ou bien ais-je une erreur quelque part ?
Merci encore en tout cas puisque la formule matricielle m'aide beaucoup.
Comme cela peut me servir pour cette application ou pour plus tard, si
vous avez la réponse, j'aimerais "ne pas mourir idiot".
Bien à vous.
Jean Pi
"JeanPi37" a écrit dans le message de
news:Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" a écrit dans le message de
news:Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne
d'une feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Ou bien ais-je une erreur quelque part ?
Merci à vous deux.
Effectivement, la formule matricielle fait gagner beaucoup de temps.
Cela dit, pour répondre à Jacky et pour essayer de comprendre ce qui
n'allait pas, voici l'organisation de mon fichier.
Sur la Feuil1, j'ai 20 éléments (Chef) qui en contiennent chacun 10
(Sous-Chef) qui en contiennent eux-mêmes chacun 10 (Employés).
Les Sous-Chefs sont en colonne et les Eployés sont en ligne pour chaque
Sous-Chef.
Ce sont les Employés qui m'intéressent d'abord pour l'automatisation en
macro.
J'ai créé 20 feuilles qui ont chacune 10 x 10 éléments
Dans ma macro, je veux automatiser le remplissage des 10 x 10 cellules
avec ma fameuse fonction SI, et ce dans chacune des 20 feuilles.
A chaque passage, je renseigne d'abord la référence au sous-chef, puis les
références aux 10 employés de mes sous chefs.
Ceci, jusqu'à ce que les 10 sous-chefs et les 100 employés soient
renseignés (et ceci 20 fois).
Donc, je rappelle que dans la boucle (et même pour un seul),
ceci fonctionne :
Cells(lig, 2).Value = "='Feuil1'!R" & valproc & "C" & j & ""
Mais la fonction si
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
Ne fonctionne pas.
Pourtant, l'affichage dans une MsgBox ne montre pas d'erreur.
La fonction SI est-elle incompatible avec .Value ?
Ou bien ais-je une erreur quelque part ?
Merci encore en tout cas puisque la formule matricielle m'aide beaucoup.
Comme cela peut me servir pour cette application ou pour plus tard, si
vous avez la réponse, j'aimerais "ne pas mourir idiot".
Bien à vous.
Jean Pi
"JeanPi37" <jeanpi37oter_ceci@hotmail.com> a écrit dans le message de
news:uIDDvCOKJHA.5336@TK2MSFTNGP05.phx.gbl...
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" <Dupond@marcel.fr> a écrit dans le message de
news:uBjdD4EKJHA.5516@TK2MSFTNGP03.phx.gbl...
Bonjour,
.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" <jeanpi37oter_ceci@hotmail.com> a écrit dans le message de
news: %23RdH99AKJHA.5060@TK2MSFTNGP02.phx.gbl...
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne
d'une feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Ou bien ais-je une erreur quelque part ?
Merci à vous deux.
Effectivement, la formule matricielle fait gagner beaucoup de temps.
Cela dit, pour répondre à Jacky et pour essayer de comprendre ce qui
n'allait pas, voici l'organisation de mon fichier.
Sur la Feuil1, j'ai 20 éléments (Chef) qui en contiennent chacun 10
(Sous-Chef) qui en contiennent eux-mêmes chacun 10 (Employés).
Les Sous-Chefs sont en colonne et les Eployés sont en ligne pour chaque
Sous-Chef.
Ce sont les Employés qui m'intéressent d'abord pour l'automatisation en
macro.
J'ai créé 20 feuilles qui ont chacune 10 x 10 éléments
Dans ma macro, je veux automatiser le remplissage des 10 x 10 cellules
avec ma fameuse fonction SI, et ce dans chacune des 20 feuilles.
A chaque passage, je renseigne d'abord la référence au sous-chef, puis les
références aux 10 employés de mes sous chefs.
Ceci, jusqu'à ce que les 10 sous-chefs et les 100 employés soient
renseignés (et ceci 20 fois).
Donc, je rappelle que dans la boucle (et même pour un seul),
ceci fonctionne :
Cells(lig, 2).Value = "='Feuil1'!R" & valproc & "C" & j & ""
Mais la fonction si
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
Ne fonctionne pas.
Pourtant, l'affichage dans une MsgBox ne montre pas d'erreur.
La fonction SI est-elle incompatible avec .Value ?
Ou bien ais-je une erreur quelque part ?
Merci encore en tout cas puisque la formule matricielle m'aide beaucoup.
Comme cela peut me servir pour cette application ou pour plus tard, si
vous avez la réponse, j'aimerais "ne pas mourir idiot".
Bien à vous.
Jean Pi
"JeanPi37" a écrit dans le message de
news:Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule de
référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" a écrit dans le message de
news:Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne
d'une feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R" &
valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Re...Ou bien ais-je une erreur quelque part ?
valproc = ?????
En restant dans les ref "R1C1"
Il cause en anglais vba. (Si=If et le point virgule= virgule)
Cells(lig, 2).FormulaR1C1 = "=If('Feuil1'!R" & valproc & "C" & j &
"<>""""," & "'Feuil1'!R" & valproc & "C" & j & ", """")"
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news:Merci à vous deux.
Effectivement, la formule matricielle fait gagner beaucoup de temps.
Cela dit, pour répondre à Jacky et pour essayer de comprendre ce qui
n'allait pas, voici l'organisation de mon fichier.
Sur la Feuil1, j'ai 20 éléments (Chef) qui en contiennent chacun 10
(Sous-Chef) qui en contiennent eux-mêmes chacun 10 (Employés).
Les Sous-Chefs sont en colonne et les Eployés sont en ligne pour chaque
Sous-Chef.
Ce sont les Employés qui m'intéressent d'abord pour l'automatisation en
macro.
J'ai créé 20 feuilles qui ont chacune 10 x 10 éléments
Dans ma macro, je veux automatiser le remplissage des 10 x 10 cellules
avec ma fameuse fonction SI, et ce dans chacune des 20 feuilles.
A chaque passage, je renseigne d'abord la référence au sous-chef, puis
les références aux 10 employés de mes sous chefs.
Ceci, jusqu'à ce que les 10 sous-chefs et les 100 employés soient
renseignés (et ceci 20 fois).
Donc, je rappelle que dans la boucle (et même pour un seul),
ceci fonctionne :
Cells(lig, 2).Value = "='Feuil1'!R" & valproc & "C" & j & ""
Mais la fonction si
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
Ne fonctionne pas.
Pourtant, l'affichage dans une MsgBox ne montre pas d'erreur.
La fonction SI est-elle incompatible avec .Value ?
Ou bien ais-je une erreur quelque part ?
Merci encore en tout cas puisque la formule matricielle m'aide beaucoup.
Comme cela peut me servir pour cette application ou pour plus tard, si
vous avez la réponse, j'aimerais "ne pas mourir idiot".
Bien à vous.
Jean Pi
"JeanPi37" a écrit dans le message de
news:Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule
de référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" a écrit dans le message de
news:Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll,
Operation:=xlNone, SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne
d'une feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R"
& valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Re...
Ou bien ais-je une erreur quelque part ?
valproc = ?????
En restant dans les ref "R1C1"
Il cause en anglais vba. (Si=If et le point virgule= virgule)
Cells(lig, 2).FormulaR1C1 = "=If('Feuil1'!R" & valproc & "C" & j &
"<>""""," & "'Feuil1'!R" & valproc & "C" & j & ", """")"
--
Salutations
JJ
"JeanPi37" <jeanpi37oter_ceci@hotmail.com> a écrit dans le message de
news: OXQxu5ZKJHA.4708@TK2MSFTNGP02.phx.gbl...
Merci à vous deux.
Effectivement, la formule matricielle fait gagner beaucoup de temps.
Cela dit, pour répondre à Jacky et pour essayer de comprendre ce qui
n'allait pas, voici l'organisation de mon fichier.
Sur la Feuil1, j'ai 20 éléments (Chef) qui en contiennent chacun 10
(Sous-Chef) qui en contiennent eux-mêmes chacun 10 (Employés).
Les Sous-Chefs sont en colonne et les Eployés sont en ligne pour chaque
Sous-Chef.
Ce sont les Employés qui m'intéressent d'abord pour l'automatisation en
macro.
J'ai créé 20 feuilles qui ont chacune 10 x 10 éléments
Dans ma macro, je veux automatiser le remplissage des 10 x 10 cellules
avec ma fameuse fonction SI, et ce dans chacune des 20 feuilles.
A chaque passage, je renseigne d'abord la référence au sous-chef, puis
les références aux 10 employés de mes sous chefs.
Ceci, jusqu'à ce que les 10 sous-chefs et les 100 employés soient
renseignés (et ceci 20 fois).
Donc, je rappelle que dans la boucle (et même pour un seul),
ceci fonctionne :
Cells(lig, 2).Value = "='Feuil1'!R" & valproc & "C" & j & ""
Mais la fonction si
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
Ne fonctionne pas.
Pourtant, l'affichage dans une MsgBox ne montre pas d'erreur.
La fonction SI est-elle incompatible avec .Value ?
Ou bien ais-je une erreur quelque part ?
Merci encore en tout cas puisque la formule matricielle m'aide beaucoup.
Comme cela peut me servir pour cette application ou pour plus tard, si
vous avez la réponse, j'aimerais "ne pas mourir idiot".
Bien à vous.
Jean Pi
"JeanPi37" <jeanpi37oter_ceci@hotmail.com> a écrit dans le message de
news:uIDDvCOKJHA.5336@TK2MSFTNGP05.phx.gbl...
Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule
de référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" <Dupond@marcel.fr> a écrit dans le message de
news:uBjdD4EKJHA.5516@TK2MSFTNGP03.phx.gbl...
Bonjour,
.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll,
Operation:=xlNone, SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" <jeanpi37oter_ceci@hotmail.com> a écrit dans le message de
news: %23RdH99AKJHA.5060@TK2MSFTNGP02.phx.gbl...
bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne
d'une feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R"
& valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin
Re...Ou bien ais-je une erreur quelque part ?
valproc = ?????
En restant dans les ref "R1C1"
Il cause en anglais vba. (Si=If et le point virgule= virgule)
Cells(lig, 2).FormulaR1C1 = "=If('Feuil1'!R" & valproc & "C" & j &
"<>""""," & "'Feuil1'!R" & valproc & "C" & j & ", """")"
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news:Merci à vous deux.
Effectivement, la formule matricielle fait gagner beaucoup de temps.
Cela dit, pour répondre à Jacky et pour essayer de comprendre ce qui
n'allait pas, voici l'organisation de mon fichier.
Sur la Feuil1, j'ai 20 éléments (Chef) qui en contiennent chacun 10
(Sous-Chef) qui en contiennent eux-mêmes chacun 10 (Employés).
Les Sous-Chefs sont en colonne et les Eployés sont en ligne pour chaque
Sous-Chef.
Ce sont les Employés qui m'intéressent d'abord pour l'automatisation en
macro.
J'ai créé 20 feuilles qui ont chacune 10 x 10 éléments
Dans ma macro, je veux automatiser le remplissage des 10 x 10 cellules
avec ma fameuse fonction SI, et ce dans chacune des 20 feuilles.
A chaque passage, je renseigne d'abord la référence au sous-chef, puis
les références aux 10 employés de mes sous chefs.
Ceci, jusqu'à ce que les 10 sous-chefs et les 100 employés soient
renseignés (et ceci 20 fois).
Donc, je rappelle que dans la boucle (et même pour un seul),
ceci fonctionne :
Cells(lig, 2).Value = "='Feuil1'!R" & valproc & "C" & j & ""
Mais la fonction si
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
Ne fonctionne pas.
Pourtant, l'affichage dans une MsgBox ne montre pas d'erreur.
La fonction SI est-elle incompatible avec .Value ?
Ou bien ais-je une erreur quelque part ?
Merci encore en tout cas puisque la formule matricielle m'aide beaucoup.
Comme cela peut me servir pour cette application ou pour plus tard, si
vous avez la réponse, j'aimerais "ne pas mourir idiot".
Bien à vous.
Jean Pi
"JeanPi37" a écrit dans le message de
news:Jacky (et tout autre lecteur)
Je viens de tester
Effectivement cela fonctionne bien mais ça ne correspond pas à ce dont
j'ai besoin.
Je veux effectivement une formule qui affiche le contenu de sa cellule
de référence ou rien si cette cellule est vide.
Dans ton exemple, on doit tout refaire à chaque fois. Or ces cellules
seront bloquées après le développement.
La grande question est : pourquoi une fonction simple passe et pas une
fonction SI
Le message d'erreur est peu explicite.
A bientôt j'espère.
Jean Pi
"Jacky" a écrit dans le message de
news:Bonjour,.... récupérer les valeurs de cellules en ligne d'une feuille et les
coller en colonne dans la feuille 2.
Si j'ai bien compris.......
Ceci récupère les cellules A1:J1 de la feuille 1 (ligne 1)
et colle dans feuille 2 A2:A11 (colonne A)
'------------
Sub jj()
Sheets("Feuil1").Range("A1:J1").Copy
Sheets("Feuil2").[a2].PasteSpecial Paste:=xlPasteAll,
Operation:=xlNone, SkipBlanks:úlse, Transpose:=True
Application.CutCopyMode = False
End Sub
'-----------
--
Salutations
JJ
"JeanPi37" a écrit dans le message de
news: %bonjour à tous,
Je bute depuis plusieurs jour sur le problème suivant :
Utiliser une macro pour récupérer les valeurs de cellules en ligne
d'une feuille et les coller en colonne dans la feuille 2.
Tout va bien pour les boucles For / Next imbriquées.
Tout va bien aussi si je récupère simplement la valeur.
Mais, comme certaines cellules de la feuille 1 sont vides, le résultat
de la fonction est alors 0.
Pour voir un "blanc", j'essaie d'utiliser - sans succès - une fonction
SI dans la macro.
voici ce que ça donne.
Si quelqu'un à une idée géniale pour résoudre le problème, je suis
preneur.
Merci d'avance
Jean PI
---------------------------------------------------------------------------------------------------------------------
ig = 5
For i = 1 To 10
For j = 2 To 11
' Ici, cela fonctionne --> Cells(lig, 2).Value = "='Feuil1'!R"
& valproc & "C" & j & ""
MsgBox "='Feuil1'!R" & valproc & "C" & j & ""
Affiche ='Feuil1'!R6C2 (donc ce qui est attendu)
La cellule prend à chaque fois la valeur de la cellule de la Feuil1,
mais elle prend la valeur 0 si la cellule d'origine est vide!
Pour résoudre cela, je voudrais utiliser une fonction SI.
Après quelques test, j'obtiens ceci en affichage:
MsgBox "=si('Feuil1'!R" & valproc & "C" & j & "<>"""";" &
"'Feuil1'!R" & valproc & "C" & j & "; """")"
soit bien : =si('Feuil1'!R6C2<>"";'Feuil1'!R6C2;""), pour la première
ligne
Mais quand j'applique la formule :
Cells(lig, 2).Value = "=si('Feuil1'!R" & valproc & "C" & j &
"<>"""";" & "'Feuil1'!R" & valproc & "C" & j & "; """")"
J'obtiens :
--------------------------------------------
Erreur d'exécution '1004':
Erreur défnie par l'application ou par l'objet
Fin / Débogage / Aide
--------------------------------------------
d'ou vient l'erreur SVP ?
Merci de votre aide "rapide" :) car j'ai 2000 cellules à modifier !
Suite de la macro :
Select Case j
Case 2
Proc = lig - 2
Cells(Proc, 3).Value = "='Feuil1'!R" & valproc & "C1"
Case Else
End Select
lig = lig + 1
Next j
' Traitement des Processus suivants
' ---------------------------------
lig = lig + 5
If lig <= 140 Then Cells(lig - 1, 2).Value = "SP"
valproc = valproc + 1
Next i
---------------------------------------------------------------------------------------------------------------------
Fin