Déplacement données programme VBA
conseilVBA
Messages postés
25
Statut
Membre
-
conseilVBA Messages postés 25 Statut Membre -
conseilVBA Messages postés 25 Statut Membre -
Bonjour,
J'ai crée une macro VBA qui lorsqu'on rentre 3 valeurs dans un tableau nous renvoie les résultats de toutes une colonne données
Le tableau est comme ceci:
Caractéristique Unités Valeurs Données
Voici un exemple de ma macro:
Sub T
If Not IsEmpty(range("c3")) And Not IsEmpty(range("c22")) And Not IsEmpty(range("c23")) Then
Range("d3") = range("c3")
Range("d22") = range("c22")
Range("d23") = range("c23")
Range("d11") = (Range("d4") * 1000 * Mh2o) / (Range("d3") - Range("d4")) / Mas
Range("d17") = Ca * Range("d7") + Range("d11") / 1000 * (Lv + Cv * Range("d7"))
Range("d24") = Range("d23") / Range("d22")
End If
End Sub
Je voudrai que cette macro soit toujours valable
- si je déplace mon tableau
-si je supprime des lignes de ce tableau
Je sais que mon problème vient de l'écriture (range("X")) mais je ne sais pas si il exisye une autre manière d'écrire un programme.
Merci à tous
J'ai crée une macro VBA qui lorsqu'on rentre 3 valeurs dans un tableau nous renvoie les résultats de toutes une colonne données
Le tableau est comme ceci:
Caractéristique Unités Valeurs Données
Voici un exemple de ma macro:
Sub T
If Not IsEmpty(range("c3")) And Not IsEmpty(range("c22")) And Not IsEmpty(range("c23")) Then
Range("d3") = range("c3")
Range("d22") = range("c22")
Range("d23") = range("c23")
Range("d11") = (Range("d4") * 1000 * Mh2o) / (Range("d3") - Range("d4")) / Mas
Range("d17") = Ca * Range("d7") + Range("d11") / 1000 * (Lv + Cv * Range("d7"))
Range("d24") = Range("d23") / Range("d22")
End If
End Sub
Je voudrai que cette macro soit toujours valable
- si je déplace mon tableau
-si je supprime des lignes de ce tableau
Je sais que mon problème vient de l'écriture (range("X")) mais je ne sais pas si il exisye une autre manière d'écrire un programme.
Merci à tous
A voir également:
- Déplacement données programme VBA
- Fuite données maif - Guide
- Programme demarrage windows - Guide
- Mes deplacement - Guide
- Trier des données excel - Guide
- Message programmé - Guide
1 réponse
Salut,
Je t'ai écris ce code pour comprendre le fonctionnement de Offset. Offset permet de décaler par rapport à une cellule de référence, dans l'exemple ActiveCell, la cellule active.
1- Ouvre un nouveau classeur excel
2- Clic droit sur un onglet de feuille/Visualiser le code
3- Copie-colle ce code :
4- ferme visual basic et teste en cliquant n'importe ou dans la feuille...
5- re teste en cliquant ailleurs.
je précise qu'il ne s'agit que d'un outil pour favoriser la compréhension du fonctionnement de Offset, et non pas d'un code VBA tout cuit te résolvant ton problème...
Je t'ai écris ce code pour comprendre le fonctionnement de Offset. Offset permet de décaler par rapport à une cellule de référence, dans l'exemple ActiveCell, la cellule active.
1- Ouvre un nouveau classeur excel
2- Clic droit sur un onglet de feuille/Visualiser le code
3- Copie-colle ce code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Or Target.Row = 1 Then Exit Sub
Cells.ClearContents
Cells.Interior.ColorIndex = xlNone
With ActiveCell
.Value = "ActiveCell " & ActiveCell.Address
.Interior.ColorIndex = 3
.Font.ColorIndex = 2
.Font.Bold = True
End With
With ActiveCell.Offset(1, 1)
.Value = "ActiveCell.Offset(1, 1) " & ActiveCell.Offset(1, 1).Address
.Interior.ColorIndex = 3
.Font.ColorIndex = 2
.Font.Bold = True
End With
With ActiveCell.Offset(10, 0)
.Value = "ActiveCell.Offset(10, 0) " & ActiveCell.Offset(10, 0).Address
.Interior.ColorIndex = 3
.Font.ColorIndex = 2
.Font.Bold = True
End With
With ActiveCell.Offset(-1, -1)
.Value = "ActiveCell.Offset(-1, -1) " & ActiveCell.Offset(-1, -1).Address
.Interior.ColorIndex = 3
.Font.ColorIndex = 2
.Font.Bold = True
End With
Columns(ActiveCell.Column).EntireColumn.AutoFit
Columns(ActiveCell.Column + 1).EntireColumn.AutoFit
Columns(ActiveCell.Column - 1).EntireColumn.AutoFit
End Sub
4- ferme visual basic et teste en cliquant n'importe ou dans la feuille...
5- re teste en cliquant ailleurs.
je précise qu'il ne s'agit que d'un outil pour favoriser la compréhension du fonctionnement de Offset, et non pas d'un code VBA tout cuit te résolvant ton problème...
Merci pour ton programme je vais essayer de l'adapter pour ma macro.
Bonne journée