Macro:graphique avec plage variable à définir avec méthode Find
Résolu/Fermé
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
-
14 juin 2017 à 10:46
Wazzid Messages postés 14 Date d'inscription mercredi 14 juin 2017 Statut Membre Dernière intervention 16 juin 2017 - 15 juin 2017 à 12:53
Wazzid Messages postés 14 Date d'inscription mercredi 14 juin 2017 Statut Membre Dernière intervention 16 juin 2017 - 15 juin 2017 à 12:53
A voir également:
- Excel graphique plage de données variable
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro logiciel - Télécharger - Organisation
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
2 réponses
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
14 juin 2017 à 16:46
14 juin 2017 à 16:46
Du nouveau,
J'ai essayer d'avancer un petit peu mais je reste toujours boquer pour la même raison...
Il ne me renvoie pas la cellule correspondante
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String
Worksheets("resultat").Select
Set PlageDeRecherche = Rows("1")
Set Trouve = PlageDeRecherche.Cells.Find(What:="Mph1", LookAt:=xlWhole)
If Trouve Is Nothing Then
Exit Sub
Else
AdresseTrouvee = Trouve.Address
End If
Dim cell As Range
Dim Lastcell1 As Range
Dim graph1 As Range
' Erreur range globale Lastcell1 = nothing et Selection = "Mph1"
Range("AdresseTrouvee" & Rows.Count).End(xlUp).Offset(-1, 0).Select
Lastcell1 = Selection
Range("A1:Lastcell1").Select
Set graph1 = Selection
Worksheets("graphique phase 1").Shapes.AddChart2(227, xlLineMarkers).Select
ActiveChart.SetSourceData Source:=Range("graph1")
End Sub
J'ai essayer d'avancer un petit peu mais je reste toujours boquer pour la même raison...
Il ne me renvoie pas la cellule correspondante
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String
Worksheets("resultat").Select
Set PlageDeRecherche = Rows("1")
Set Trouve = PlageDeRecherche.Cells.Find(What:="Mph1", LookAt:=xlWhole)
If Trouve Is Nothing Then
Exit Sub
Else
AdresseTrouvee = Trouve.Address
End If
Dim cell As Range
Dim Lastcell1 As Range
Dim graph1 As Range
' Erreur range globale Lastcell1 = nothing et Selection = "Mph1"
Range("AdresseTrouvee" & Rows.Count).End(xlUp).Offset(-1, 0).Select
Lastcell1 = Selection
Range("A1:Lastcell1").Select
Set graph1 = Selection
Worksheets("graphique phase 1").Shapes.AddChart2(227, xlLineMarkers).Select
ActiveChart.SetSourceData Source:=Range("graph1")
End Sub
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
15 juin 2017 à 12:53
15 juin 2017 à 12:53
J'ai ouvert un nouveau post, je met ici aussi la suite de ma demande :
Ma macro va chercher à l'aide de la méthode find, la dernière colonne utile pour réaliser mon graphe et descend jusqu'à l'avant dernière cellule non vide ce qui me permet de définir la dernière case de ma plage de données.
Or je souhaite maintenant définir la plage de la cellule A1 à ma dernière définit juste avant mais le code Range("A1:Lastcell") ne fonctionne pas, il me renvoie une erreur
Si vous pouviez me sortir de cette situation, merci de votre aide.
Fichier excel : http://www.cjoint.com/c/GFoiTTT3Uky
Sub graph()
'
' graphe Macro
'
'
Dim grph1 As Worksheet
Dim grph2 As Worksheet
Dim grph3 As Worksheet
Dim i As Integer
Dim y As Integer
Dim z As Integer
Dim Cpt As Integer
Dim Cpy As Integer
Dim Cpu As Integer
Dim CptSh As Integer
Cpt = 0
CptSh = Sheets.Count
For i = 1 To CptSh
If Sheets(i).Name <> "graphique phase 1" Then Cpt = Cpt + 1 Else Exit For
Next i
If Cpt = CptSh Then
Sheets.Add After:=Sheets("synthese")
ActiveSheet.Name = "graphique phase 1"
End If
Cpy = 0
CptSh = Sheets.Count
For y = 1 To CptSh
If Sheets(y).Name <> "graphique phase 2" Then Cpy = Cpy + 1 Else Exit For
Next y
If Cpy = CptSh Then
Sheets.Add After:=Sheets("graphique phase 1")
ActiveSheet.Name = "graphique phase 2"
End If
Cpu = 0
CptSh = Sheets.Count
For u = 1 To CptSh
If Sheets(u).Name <> "graphique phase 3" Then Cpu = Cpu + 1 Else Exit For
Next u
If Cpu = CptSh Then
Sheets.Add After:=Sheets("graphique phase 2")
ActiveSheet.Name = "graphique phase 3"
End If
Dim R1 As Range 'déclare la variable R1 (Recherche 1)
Dim R2 As Range 'déclare la variable R2 (Recherche 2)
Dim R3 As Range 'déclare la variable R2 (Recherche 3)
Dim R4 As Range 'déclare la variable R2 (Recherche 4)
Dim R5 As Range 'déclare la variable R2 (Recherche 5)
Dim R6 As Range 'déclare la variable R2 (Recherche 6)
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim COL2 As Integer 'déclare la variable COL2 (COLonne 2)
Dim COL3 As Integer 'déclare la variable COL3 (COLonne 3)
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim Lastcell As Range
Dim courbe1 As Range
Sheets("resultat").Select
Set R1 = Sheets("resultat").Rows(1).Find("Mph1", , xlValues, xlWhole)
If Not R1 Is Nothing Then 'condition : si au moins une occurrence est trouvée
COL = R1.Column 'définit la colonne COL de la première occurrence trouvée
DL = Sheets("resultat").Cells(Application.Rows.Count, COL).End(xlUp).Offset(-1, 0).Row 'définit la dernière ligne éditée DL de la colonne COL de l'onget OND
End If 'fin de la condition
Set Lastcell = Cells(DL, COL)
Set courbe1 = Range("A1:Lastcell") ' la méthode range de l'objet global à échoué
'Lastcell me renvoie la valeur correspondante à ma dernière case voulue pour faire ma plage
Worksheets("graphique phase 1").Shapes.AddChart2(227, xlLineMarkers).Select
ActiveChart.SetSourceData Source:=Range("resultat!courbe1")
End Sub
Ma macro va chercher à l'aide de la méthode find, la dernière colonne utile pour réaliser mon graphe et descend jusqu'à l'avant dernière cellule non vide ce qui me permet de définir la dernière case de ma plage de données.
Or je souhaite maintenant définir la plage de la cellule A1 à ma dernière définit juste avant mais le code Range("A1:Lastcell") ne fonctionne pas, il me renvoie une erreur
Si vous pouviez me sortir de cette situation, merci de votre aide.
Fichier excel : http://www.cjoint.com/c/GFoiTTT3Uky
Sub graph()
'
' graphe Macro
'
'
Dim grph1 As Worksheet
Dim grph2 As Worksheet
Dim grph3 As Worksheet
Dim i As Integer
Dim y As Integer
Dim z As Integer
Dim Cpt As Integer
Dim Cpy As Integer
Dim Cpu As Integer
Dim CptSh As Integer
Cpt = 0
CptSh = Sheets.Count
For i = 1 To CptSh
If Sheets(i).Name <> "graphique phase 1" Then Cpt = Cpt + 1 Else Exit For
Next i
If Cpt = CptSh Then
Sheets.Add After:=Sheets("synthese")
ActiveSheet.Name = "graphique phase 1"
End If
Cpy = 0
CptSh = Sheets.Count
For y = 1 To CptSh
If Sheets(y).Name <> "graphique phase 2" Then Cpy = Cpy + 1 Else Exit For
Next y
If Cpy = CptSh Then
Sheets.Add After:=Sheets("graphique phase 1")
ActiveSheet.Name = "graphique phase 2"
End If
Cpu = 0
CptSh = Sheets.Count
For u = 1 To CptSh
If Sheets(u).Name <> "graphique phase 3" Then Cpu = Cpu + 1 Else Exit For
Next u
If Cpu = CptSh Then
Sheets.Add After:=Sheets("graphique phase 2")
ActiveSheet.Name = "graphique phase 3"
End If
Dim R1 As Range 'déclare la variable R1 (Recherche 1)
Dim R2 As Range 'déclare la variable R2 (Recherche 2)
Dim R3 As Range 'déclare la variable R2 (Recherche 3)
Dim R4 As Range 'déclare la variable R2 (Recherche 4)
Dim R5 As Range 'déclare la variable R2 (Recherche 5)
Dim R6 As Range 'déclare la variable R2 (Recherche 6)
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim COL2 As Integer 'déclare la variable COL2 (COLonne 2)
Dim COL3 As Integer 'déclare la variable COL3 (COLonne 3)
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim Lastcell As Range
Dim courbe1 As Range
Sheets("resultat").Select
Set R1 = Sheets("resultat").Rows(1).Find("Mph1", , xlValues, xlWhole)
If Not R1 Is Nothing Then 'condition : si au moins une occurrence est trouvée
COL = R1.Column 'définit la colonne COL de la première occurrence trouvée
DL = Sheets("resultat").Cells(Application.Rows.Count, COL).End(xlUp).Offset(-1, 0).Row 'définit la dernière ligne éditée DL de la colonne COL de l'onget OND
End If 'fin de la condition
Set Lastcell = Cells(DL, COL)
Set courbe1 = Range("A1:Lastcell") ' la méthode range de l'objet global à échoué
'Lastcell me renvoie la valeur correspondante à ma dernière case voulue pour faire ma plage
Worksheets("graphique phase 1").Shapes.AddChart2(227, xlLineMarkers).Select
ActiveChart.SetSourceData Source:=Range("resultat!courbe1")
End Sub