Copier cellule d'une feuille à une autre

Messages postés
2
Date d'inscription
dimanche 4 septembre 2016
Dernière intervention
4 septembre 2016
-
Bonjour,

J'ai besoin d'aide.
Je veux copier des cellules d'une feuille avec un nom NETTOYAGE a une cellule avec une variable
sheets(cells(3,i).value)

Mias ca beug après le end if sur
Worksheets(Cells(3, i).Value).Activate

Il me dit erreur 9, l'indice n'appartient pas à la selection.
Je n'arrive pas à trouver l'ereur.

Pouvez vous m'aider ?
Dim entreprise As String, nom As String, detail As String, l As Long, montant As Integer, j As Integer, k As Integer
Dim NETTOYAGE As Worksheet
i = 6
l = 4
Sheets("NETTOYAGE").Activate
Do Until Cells(3, i) = "TOTAL FACTURE"
   Do Until Cells(l, i) = ""
         If Cells(l, i) = 0 Then
             l = l + 1
         Else
          Worksheets(Cells(3, i).Value).Activate    
              k = 7 
                 Do While Cells(k, 2) = notempty
                          k = k + 1
                 Loop
                 
             Worksheets("NETTOYAGE").Activate
             Range(Cells(l, 1), Cells(l, 2)).Select
             Selection.Copy
             
             Worksheets(Cells(3, i).Value).Select
             Range(Cells(k, 1), Cells(k, 2)).Select
             ActiveSheet.Paste
             
             
             Cells(l, i).Select
             Selection.Copy
             
             Sheets(Cells(3, i).Value).Select
             Cells(k, 3).Select
             ActiveSheet.Paste
             
             
             Worksheets("NETTOYAGE").Activate
             
             l = l + 1
             
       End If
         
   Loop

i = i + 1

Loop

  
End Sub




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
Afficher la suite 

Votre réponse

3 réponses

Messages postés
23569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 décembre 2018
0
Merci
Bonjour,

<block>
Mias ca beug après le end if sur
Worksheets(Cells(3, i).Value).Activate

Il me dit erreur 9, l'indice n'appartient pas à la selection.
</code>

Question bête ( ou pas....)
- Que vaut i lorsque ça plante ?
- Quelle est la valeur de la cellule à ce moment là ??
- Est-ce qu'une feuille portant ce nom existe bien (avec EXACTEMENT la même orthographe... espaces compris!!!!) ???


De plus... tu fais des copy/Past .... mais... que veux tu récupérer exactement ? Si ce n'est QUE LA VALEUR de la cellule (et pas sa mise en forme....) il vaut mieux éviter d'utiliser des SELECT / COPY / PASTE ... et seulement faire des RangeDestination.value = RangeSource.value .....


Commenter la réponse de jordane45
Messages postés
2
Date d'inscription
dimanche 4 septembre 2016
Dernière intervention
4 septembre 2016
0
Merci
Bonjour,

Merci de votre réponse.

I=6 normalement lors de la première boucle. Mais je ne sais pas relevé cette valeur au moment quand ça beug.

Eh oui je veux récupérer que la valeur.

La valeur que je récupère cells (3,i) est RK
Et j ai une feuille qui se nomme également RK.
Je veux récupérer les valeurs de cette entreprise et mettre que ses valeur dans sa feuille perso.
Dans la feuille nettoyage, j ai l ensemble des entreprises.

Comment fonctionne votre fonction ?

Dois je à chaque fois activer la feuille ?
Pourquoi il ne reconnaît pas l indice alors que je l ai déclaré ?
jordane45
Messages postés
23569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 décembre 2018
-

je ne sais pas relevé cette valeur au moment quand ça beug.

Tu n'as qu'à exécuter ton script en mode PAS à PAS et regarder (en survolant les variables avec ta souris) quelles sont leur valeur...
Tu peux aussi utiliser la console de debogage en y affichant les variables
par exemple avec un
debug.print 


Tout est expliqué ici : https://support.microsoft.com/fr-fr/kb/142999
Commenter la réponse de fafaira
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
0
Merci
Bonjour,

Tu déclares une variable... aussi bien l'utiliser
Essaie plutôt

Dim NETTOYAGE As Worksheet  'variable objet worksheet

NETTOYAGE.Activate 'pas de sheets() ni de guillemets ici

Commenter la réponse de cs_MPi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.